3

内部に別の observableArray を持つ事実上 observableArray である複雑な knockout.js オブジェクトがあります。選択した要素を2番目の配列から非同期に削除する削除機能があります。項目がデータベースにアーカイブされていますが、クライアント側で監視可能なプロパティの 1 つが false に設定されており、画面から消えています。

ボタンの削除イベントは、$root キーワードを使用して作成されます。

<a href="#" data-bind="click: $root.RemoveActivity">Remove</a>

「this」キーワードを使用して、選択した要素の詳細にアクセスできるもの。私の問題は、2 番目の配列から項目を削除しているときに、最初の配列の親項目に何かを変更したいということです。「this」キーワードは子アイテムを参照すると言いましたが、同時に親アイテムにもアクセスできる方法はありますか?

4

1 に答える 1

7

mhuの答えは、ViewModelとViewの構造の間に依存関係を作成するため、アンチパターンです。

代わりに

<a href="#" data-bind="click: $parent.removeActivity.bind($parent)">Remove</a>

親ビューモデル

removeActivity: function(activity) {
    this.activities.remove(activity);
}
于 2013-01-07T10:04:32.727 に答える