0

ノックアウトビューモデルでリファクタリングを実行しようとしています。モデルオブジェクトからいくつかのビューロジックを分離することから始めます。

表示されているバインディングを使用するときに値を返す方法があるかどうか疑問に思っていましたか?

私の現在の状況は、Foreachループにあります。Knockoutが繰り返し処理しているオブジェクトを、表示されているバインディングで呼び出すメソッドに戻したいと思いました。

data-bind="visible: SomeMethod"

data-bind="visible: SomeMethod(object)"

このメソッドは明らかにko.computed関数であり、値を返そうとしましたが失敗しました。その常に未定義。

var SomeMethod = ko.computed(function() {
.....
}

これが可能であるならば、何か考えはありますか?

4

1 に答える 1

2

Knockoutは、依存関係を追跡するために、計算されたオブザーバブル内でバインディングを実行します。正確な目的はわかりませんが、通常の機能を使用することができます。

var SomeMethod = function(item) {
     //do something with the item and return a value

};

渡すものによっては、次$dataのようにバインディングで使用することをお勧めします。

data-bind="visible: SomeMethod($data)"

より一般的に使用される他の選択肢は、適切な値を返す各アイテムに実際に計算を配置することです。関数に渡す値がアイテム自体に表されている場合は、その値を明確に表す計算を作成できるはずです。

于 2012-11-07T15:44:43.637 に答える