【发布时间】:2012-11-14 06:22:42
【问题描述】:
我有一个非常简单的视图模型:
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
};
};
同样简单的标记:
<a href="#" data-bind="click: toggleVisibility">Toggle</a>
<br />
<table>
<tr data-bind="visible: showRow">Some Text</tr>
</table>
我的问题是,当点击链接时,会显示警告框(显示正确的值 - 真/假)
但是,tr 元素上的可见绑定似乎不起作用 - 无论是最初(该行在加载时应该是不可见的)还是在 showRow 的值切换时。
上面的jsFiddle-http://jsfiddle.net/alexjamesbrown/FgVxY/3/
【问题讨论】:
-
this.showRow =表示您正在覆盖“可观察”属性。当您使用 observable 时,该属性是一个函数,而不仅仅是一个值。 -
为了补充 James D'Angelo 的观点,如果您想更新可观察属性的值,请将值作为参数传递给该属性。 'this.showRow(false)';