Así que estaba tratando de actualizar la visibilidad de una etiqueta de intervalo cuando cambia un valor, pero noté que usar if: y usar directamente el operador de comparación no funciona cuando cambia el valor. Por ejemplo:
<span data-bind="if: firstName === 'Bert'">Hello</span>Entonces, si inicialmente tenemos algo más en el firstName observable, no será visible. Teóricamente, si cambiamos el valor a Bert (tal vez usando una entrada de texto) o una función que cambia el valor, debería mostrar el intervalo de Hello, pero no funciona.
Para actualizar el componente HTML usando la declaración if, debemos usar una función en el JS y llamar a la función como se muestra a continuación.
En el JS (dentro del modelo de vista):
this.showSpan = function() { return this.firstName() === 'Bert' }Y en el HTML:
<span data-bind="if: showSpan()">Hello</span>