2

私は Knockout.js を非常に広範囲に使用してきましたが、実際にどのように機能するかを理解したい場合によく使用するパターンが 1 つあります。

多くの場合、productModule.products() などのビュー モデルの ObservableArray を使用します。次に、配列フィルター (現在は Underscore.js を使用) を使用してサブセットを返す productModule.getAvailableProducts() などのさまざまなフィルター関数を用意し、その関数を UI にバインドします。私がよく理解していないのは、これらの関数が ObservableArray ではなく標準配列を返すことを考えると、基礎となる ObservableArray を変更すると Knockout のバインディングが更新される方法です。フィドルの例を次に示します。

http://jsfiddle.net/4RHks/19/

Knockout は、特定のバインディングが ObservableArray に解決されるかどうかをバインド時に決定しますか? もしそうなら、チェーン内に任意の数のそのような関数が存在できますか?

これを理解するための助けは大歓迎です。

4

1 に答える 1

0

バインディングは、依存関係を追跡するために使用される計算されたオブザーバブル内で実際に実行されます。したがって、オブザーバブルにアクセスする関数を呼び出すと、オブザーバブルはその要素のバインディングの依存関係に貢献します。依存関係が変更されると、バインディングが再び実行されます。

この投稿でもう少し詳しく説明します: http://www.knockmeout.net/2012/06/knockoutjs-performance-gotcha-3-all-bindings.html

于 2012-08-24T00:28:40.140 に答える