0

我不明白我错在哪里。你能帮帮我吗?我创建了一个名为“bTest1”的自定义绑定,两个可观察数据(1 个数组和 1 个字符串)。将此绑定应用于字符串可以正常工作,但不能通过 ko:foreach 应用于数组

这是我的 jsfiddle 链接:这里

和我的代码

<!-- 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。

4

1 回答 1

1

早上好。

ObservableArray 只跟踪对数组本身的更改(添加/删除项目),而不是对其包含的项目的更改。因此,如果您想要相同的结果,则需要将数组中的每个项目标记为 ko.observable。

希望这可以帮助!

于 2012-05-08T15:32:51.010 回答