我将下面的数组绑定到模板
function Customer(id, name){
this.Id = ko.obserable(id);
this.Name = ko.obserable(name);
}
var customer1 = new Customer(1, "a");
var customer2 = new Customer(2, "b");
var customers = [customer1, customer2];
var oa = ko.observableArray(customers);
oa.subscribe(function(newValues){
//How to force trigger this when a customer property gets updated?
});
当我在视图上更新客户名称时,阵列具有更新的数据,但它不通知其订阅者。如何解决此问题并强制通知其订阅者?
1条答案
按热度按时间lymnna711#
你可以使用
computed
值来自动跟踪值列表中的变化。你在计算函数中展开的每一个可观察值都将创建一个依赖关系。唯一的缺点:您将不知道 * 是哪个 * 更改导致了更新。如果这是您需要的,您需要订阅单个
Name
可观察性。下面是一个使用自定义等式比较器的示例,您也可以只让
hash
返回string
,并在subscriber方法中手动解包oa
。第一个