0

カスタム バインディングの更新が機能しなくなったようです (バージョン 2.2.0 では機能していました)。

トリガーする必要があるイベントにアラートを配置しましたが、[追加] ボタンを押してもアラートが機能しません。

誰かがこれを確認したり、問題がどこにあり、何をすべきかについての情報を提供できますか?

動作中のバージョン (KO 2.1.0 を使用)と壊れたバージョン (KO 2.2.0 を使用) を比較してください。

HTML:

<div data-bind="foreach: items, myBind: {}">
    <h3>
        <a href="#" data-bind="text: id"></a>
    </h3>
    <div data-bind="text: name"> </div> 
</div>

<button data-bind="click: add">Add Item</button>

<hr/>

JS:

ko.bindingHandlers.myBind = {
    init: function(element, valueAccessor) {
        alert('init');       
    },
    update: function(element, valueAccessor) {
        alert('update');        
    }
}

function Item(id, name) {
    this.id = ko.observable(id);
    this.name = ko.observable(name);
}

var viewModel = {
    items: ko.observableArray([
        new Item(1, "one"),
        new Item(2, "two"),
        new Item(3, "three")]),
    add: function() {
        viewModel.items.push(new Item(4, "foo"));
    }
};

ko.applyBindings(viewModel);
4

1 に答える 1