1

コンテキストを作成するカスタム ノックアウト バインディング ハンドラーに問題があります。デモンストレーションはこちら: http://jsfiddle.net/gf3tfarz/14/

「コンテナ」が監視可能な配列に適用される場合、子要素は更新されません。

<div data-bind="container: { data: selectedCountry().ids }">
    <p>Error: <span data-bind="text: $container.data().length"></span></p>
    <div data-bind="foreach: $container.data">
        <p>Error: <span data-bind="text: $data"></span></p>
    </div>
</div>

これはカスタム バインディング ハンドラです。

ko.bindingHandlers.container = {
    init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        var innerBindingContext = bindingContext.extend({
            $container: ko.utils.unwrapObservable(valueAccessor())
        });

        ko.applyBindingsToDescendants(innerBindingContext, element);

        return { controlsDescendantBindings: true };
    }
};

「コンテナ」を使用した両方の例がデモンストレーションで機能するようにしたいと思います。

「with」を使用すると機能することに注意してください。

4

1 に答える 1