Ho una molto semplice vista Modello:Knockout visibile legame non funziona
var ViewModel = function() {
this.showRow = ko.observable(false);
this.toggleVisibility = function() {
if(this.showRow == true){
this.showRow = false;
}
else{
this.showRow = true;
}
alert('showRow is now '+this.showRow); //only here for testing
};
};
con altrettanto semplice markup:
<a href="#" data-bind="click: toggleVisibility">Toggle</a>
<br />
<table>
<tr data-bind="visible: showRow">Some Text</tr>
</table>
Il mio problema è che quando il link viene cliccato, l'avviso box mostra (visualizzazione del valore corretto - vero/falso)
Tuttavia, il collegamento visibile sull'elemento tr
non sembra funzionare - inizialmente (la riga deve essere invisibile al caricamento) né quando il valore di showRow
commuta.
jsFiddle di superiore alla http://jsfiddle.net/alexjamesbrown/FgVxY/3/
'this.showRow =' significa che stai sovrascrivendo la proprietà "osservabile". La proprietà è una funzione, non solo un valore, quando si utilizza l'osservabile. –
Per aggiungere al punto di James D'Angelo, se si desidera aggiornare il valore di una proprietà osservabile, passare il valore come parametro alla proprietà. 'this.showRow (false)'; – Quickhorn