我无法理解我错在哪里。你可以帮帮我吗? 我创建了一个名为'bTest1'的自定义绑定,两个可观察的数据(1个数组和1个字符串)。 在字符串上应用此绑定可以正常工作,但不能通过ko:foreach
在数组上这是我的jsfiddle链接:Here
和我的代码
<!-- ko foreach:test -->
<label><input type="text" data-bind="bTest1:$root.test1,value:$data,valueUpdate:'afterkeydown'" />Test1</label><br/>
<!-- /ko -->
<br/>
<label><input type="text" data-bind="bTest1:test1,value:test1,valueUpdate:'afterkeydown'" />Test2</label>
和我的JS代码(尽可能简单):
ko.bindingHandlers.bTest1 = {
init: function() {
console.log('init Test1');
},
update: function() {
console.log('update Test1');
}
};
var modelView = function(){
var self = this;
self.test = ko.observableArray(['foreach_test','foreach_test1']);
self.test1 = ko.observable('test_alone');
}
ko.applyBindings(new modelView());
我感谢你帮助我。 最好的祝福 S上。
答案 0 :(得分:1)
早上好。
ObservableArray仅跟踪对数组本身的更改(添加/删除项目),而不是更改它包含的项目。因此,如果您想要相同的结果,则需要将数组中的每个项目标记为ko.observable。
希望这有帮助!