Я хотел бы изменить массив свойства person «father», а затем статус родителя должен быть изменен, но он не работает. Я использовал ko.computed update «отец свойства человека», тогда «статус» родителя должен быть изменен как «true».KnockoutJS - Обновление свойств наблюдаемого массива, состояние родителя должно быть изменено
что я делаю неправильно?
<ul data-bind="foreach:vm">
<li>
<input type="text" data-bind="value:name" />
<input type="text" data-bind="value:age" />
<input type="text" data-bind="value:status" />
<!-- ko foreach:person-->
<input type="text" data-bind="value:father" />
<!-- /ko -->
</li>
</ul>
<script type="text/javascript">
var ps = [{"name":"gsh","status":false,"age":12,"person":[{"father":"a"},{"father":"b"}]},{"name":"zx","status":false,"age":"22","person":[{"father":"c"},{"father":"d"}]}];
function Person(p){
this.father=ko.observable(p.father);
}
function Pros(p){
this.name = ko.observable(p.name);
this.age = ko.observable(p.age);
this.person = ko.utils.arrayMap(p.person,function(pe){
return new Person(pe);
});
this.status = ko.observable(p.status);
this.status = ko.computed(function(){
ko.utils.arrayForEach(this.person,function(pe){
pe.father();
});
return true;
},this);
}
var vm = ko.utils.arrayMap(ps,function(p){
return new Pros(p);
});
var VModel = ko.observableArray(vm);
ko.applyBindings(VModel);
</script>
спасибо, я решил эту проблему, но я где-то изменился: var self = this; \t \t \t self.name = ko.observable (p.name); \t \t \t self.age = ko.observable (p.age); \t \t \t \t self.person = ko.observableArray(); \t \t \t ko.utils.arrayMap (p.person, функция (ре) { \t \t \t \t self.person() толкать (новое лицо (ре));. \t \t \t}); – GaoShiHui