、私は非常に単純なビューモデル持っている:ノックアウト見え結合機能していない
<a href="#" data-bind="click: toggleVisibility">Toggle</a>
<br />
<table>
<tr data-bind="visible: showRow">Some Text</tr>
</table>
私の問題があり、リンクがクリックされたことを、警告:同じように簡単なマークアップで
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
};
};
を(正確な値を表示する - 真/偽)
しかし、tr
要素の目に見えるバインディングは、最初に(行が見えないようにする)、またはshowRow
の値がトグルします。
あなたは次のようにあなたのhtmlを変更する必要が上述http://jsfiddle.net/alexjamesbrown/FgVxY/3/
'this.showRow ='は、 "observable"プロパティを上書きしていることを意味します。このプロパティは、オブザーバブルを使用しているときの値ではなく、関数です。 –
James D'Angeloのポイントに追加するには、観測可能なプロパティの値を更新する場合は、その値をプロパティのパラメータとして渡します。 'this.showRow(false)'; – Quickhorn