0
我有一個非常簡單的模型設置,我有一個存儲在observableArray中的電子郵件地址列表。這些可通過foreach
數據綁定進行編輯,但綁定似乎只是一種方式。當我更改文本框中的值時,更改不會反映在模型中。但是,如果我更新陣列外部的另一個字段,該更新會觸發綁定更新foreach
。Knockout observableArray數據綁定不被更新
我有一個小提琴證明此位置:
及有關HTML是這裏
<div data-bind="foreach: addresses">
<input type="text" data-bind="value: $rawData.address, valueUpdate: 'input'" />
<button data-bind="click: $parent.removeAddress">Remove</button>
<br/>
</div>
在機型是
var Model = function() {
var self = this;
self.modelName = ko.observable("modelName");
self.maxCount = 4;
self.addresses = ko.observableArray();
self.addUser = function(email) {
self.addresses.push({address: email});
};
self.removeAddress = function(email) {
self.addresses.remove(email);
};
self.hasEmpty = ko.computed(function() {
var hasBlank = false;
ko.utils.arrayForEach(self.addresses(), function(item){
if (item.address === ""){
hasBlank = true;
return;
}
});
return hasBlank;
});
self.allowAddMore = ko.computed(function() {
return self.hasEmpty() === false && self.addresses.length <= self.maxCount;
});
self.addNew = function() {
if (!self.hasEmpty()){
self.addresses.push({address: ''});
}
};
};
謝謝!知道我不得不錯過簡單的事情。 – Joe