0

どこが間違っているのか理解できません。助けてください。「bTest1」という名前のカスタム バインドを作成します。これは、2 つの監視可能なデータ (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 に答える