我正在尝试更新绑定到ObservaleArray的数组值。但是它没有得到更新。
function AppViewModel() {
var self = this;
self.Title=ko.observable('Sample');
self.people = ko.observableArray([
new Person('Ajay'),
new Person('Kumar')
]);
self.updateAns=function(){
self.people()[0].Answered=false;
};
self.updateName=function(){
self.people()[0].Name('John');
};
self.updateTitle=function(){
self.Title('New Title');
};
}
var Person=function(name){
this.Name=name;
this.Answer=[{Id: 1, Answered:true},{Id:2, Answered:true}]
}
ko.applyBindings(new AppViewModel());
如何保持数组值同步?
答案 0 :(得分:1)
observable数组只会监听对数组本身的更改,如果你想让它们更新,你还需要Person上的成员是可观察的
答案 1 :(得分:1)
可观察数组跟踪collection of things的变化。这意味着它不会检测数组项的更改,而只会检测集合的更改,例如添加/删除/替换元素。为了使人name
值保持同步,它应为observable
。
var Person = function(name){
this.Name = ko.observable(name);
...
}