1

KO 用のコンベンション ライブラリを開発しています

https://github.com/AndersMalmgren/Knockout.BindingConventions

独自のデータ属性とバインディング プロバイダーを使用しています。組み込みのものは、関数を使用してモデルを更新する bindingHandlers の非監視対象に 1 つの方法でバインドできko.expressionRewriting.writeValueToPropertyます (エクスポートされません)。たとえば、valueバインディング

問題は、すべての文字列評価コードで迷子になっているため、組み込みのバインディング プロバイダーがこれを有効にする方法を理解できなかったことです。

計算されたもので修正できますが、組み込みのように修正したいと思います。これは、ビルトインバージョンが計算なしで非オブザーバブルに書き込むように機能していることを証明するフィドルです

http://jsfiddle.net/xffPk/1/

では、writeValueToProperty を利用する bindingHandlers への非オブザーバブルへの書き込みを有効にするにはどうすればよいでしょうか?

4

1 に答える 1

0

私はこのようにそれを解決しました

var applyMemberWriter = function(bindings, bindingName, accessor, memberName, context) {
    if(!ko.isObservable(accessor)) {
        bindings._ko_property_writers = bindings._ko_property_writers || {};

        bindings._ko_property_writers[bindingName] = function(value) {
            context[memberName] = value;
        };
    }
};

これは、オブザーバブルではないものに双方向バインディングを適用するために呼び出す必要があり ます。

上記はKO 2.x用です

KO 3.x の場合

https://github.com/AndersMalmgren/Knockout.BindingConventions/commit/78983119c1e5fb70c637e4ffc1b692d2b4c74dc7

于 2013-10-07T20:28:33.400 に答える