0

次のように、プレーンなオブザーバブルを受け入れ、オブザーバブルの値をバインドされた要素の css クラス リストに追加する単純なカスタム バインディングを実行しています。

<div class="container" data-bind="cssClassBinding: state">
</div>

ko.bindingHandlers.cssClassBinding = {//simplified example code
    init: function (element, valueAccessor) {
        $(element).addClass(ko.utils.unwrapObservable(value));
    },
}

私がやろうとしているのは、このバインディングで複数の値をバインドできるようにすることです。別の値で別のバインディングを配置しようとしましたが、KO は要素ごとに 1 つのインスタンスしか評価しないようです。

//won't work
<div class="container" data-bind="cssClassBinding: state, cssClassBinding: type">
</div>

だから私はこのようにもっとできるかどうかを見ようとしています:

<div class="container" data-bind="cssClassBinding: {state, type}">
</div>

ko.bindingHandlers.cssClassBinding = {//simplified example code
    init: function (element, valueAccessor) {
        foreach (observableValue in iDon'tKnowWhere)
            $(element).addClass(ko.utils.unwrapObservable(observableValue));
    },
}

何か案は?

4

2 に答える 2