在knockout.js中,可观察函数未更新
参考我的JSFIDLE可能最容易理解我的问题 在这里,前两个div最初正确地显示了“images”可观察数组中的对象数。但当点击“删除图像”时,只有第一个div的值更新 这两个div的区别是。第一种方法直接绑定数据:在knockout.js中,可观察函数未更新,knockout.js,Knockout.js,参考我的JSFIDLE可能最容易理解我的问题 在这里,前两个div最初正确地显示了“images”可观察数组中的对象数。但当点击“删除图像”时,只有第一个div的值更新 这两个div的区别是。第一种方法直接绑定数据: <div data-bind="text: images().length"></div> 我不明白为什么第一个div更新了,第二个没有-有人能解释一下吗?我一直认为,第二个应根据文件中的此类语言进行更新: 这就是计算出的可观测值——这些函数 依赖于一个
<div data-bind="text: images().length"></div>
我不明白为什么第一个div更新了,第二个没有-有人能解释一下吗?我一直认为,第二个应根据文件中的此类语言进行更新:
这就是计算出的可观测值——这些函数
依赖于一个或多个其他观测值,并将自动
每当这些依赖项中的任何一个发生更改时更新
您正在查看:如果要基于其他可观察对象创建可观察对象,则需要计算可观察对象(ko.computed
):
因此,将您的imageScont
更改为ko.computed
:
self.imagesCount = ko.computed(function(){ return self.images().length; });
演示。
计算的可观测值是依赖于一个或多个其他可观测值的函数,并将在这些依赖项中的任何一个发生变化时自动更新
它必须是一个计算出的可观测函数,看一看
self.images = ko.observableArray([img1,img2]);
self.imagesCount = ko.observable(self.images().length);
self.imagesCount = ko.computed(function(){ return self.images().length; });
self.imagesCount = ko.computed(function() {
return self.images().length;
});