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