1

ノックアウト 2.2.0.js を使用しています。私は次のモデルを持っています:

function Person(name, age, city)
{
 this.Name = ko.observable(name);
 this.Age = ko.observable(age);
 this.City = ko.observable(city);

 ko.computed(function(){

   //Is there any way to execute this section whenever Name, Age, City any 
   //of this observable changes without including this.Name, this.Age and 
   //this.City inside it

 }, this).extend({ throttle: 500 });
}

私が求めていることは少し奇妙であることは知っていますが、これを行う方法はありますか?

4

2 に答える 2

3

カスタムバインディングを使用します。カスタムバインディングには、その中に「更新」関数があります。そして、その更新関数は、観測可能な値が変更されると自動的に呼び出されます

http://knockoutjs.com/documentation/custom-bindings.html

于 2013-03-08T12:06:45.767 に答える
1

これを行う最も簡単な方法はko.toJS(this)、計算された. これは通常、ビュー モデルから「クリーンな」オブジェクトを構築するために使用されます。そのオブジェクトの構築の一環として、すべてのオブザーバブルをアンラップします (これにより依存関係が作成されます)。したがって、依存関係のいずれかが変更されるたびに、計算されたものがトリガーされます。

これは、「ダーティ フラグ」のようなものの基礎です: http://www.knockmeout.net/2011/05/creating-smart-dirty-flag-in-knockoutjs.html

throttleこの方法で計算されたものを使用できます。

于 2013-03-08T12:11:53.523 に答える