我在这里的学习可能是一种误解。
我正在设置我的viewmodel绑定被设置为“观察”javascript对象的属性。我创建了一个间隔计时器来切换对象的属性,但我的UI没有反映更改。如何通知框架对象的属性已更改并相应更新?
直播示例:http://liveweave.com/Xfrcrv
<p>Section 1 <span data-bind="visible : hasErrors">***</span></p>
<script>
var myObj = {sectionhasErrors : true}
var vm = {
hasErrors : ko.observable(myObj.sectionhasErrors)
};
ko.applyBindings(vm);
var iTimer = setInterval(function () {
myObj.sectionhasErrors = !myObj.sectionhasErrors
console.log('toggled!');
},5000);
</script>
答案 0 :(得分:0)
淘汰赛不能&#34;观察&#34;对象的各个属性。您必须将整个对象放在一个observable中。
<p>Section 1 <span data-bind="visible : myObj().hasErrors">***</span></p>
var myObj = {
hasErrors: true
}
var vm = {
myObj: ko.observable(myObj)
};
ko.applyBindings(vm);
var iTimer = setInterval(function () {
var myObj = vm.myObj();
myObj.hasErrors = false;
vm.myObj(myObj);
console.log('toggled!');
},5000);
在我看来,你还没有掌握一些基本的Knockout概念。我建议你通过他们网站上的tutorials工作。