0

ノックアウト.jsを使用しています。カスタム バインディングを使用して確認ダイアログを作成しようとしています。私は配列を持っていpeopleます。バインディングを通じてforeach、各項目に関連付けられた削除リンクを使用して、配列の各エントリを表示しています。ユーザーが削除リンクをクリックすると、確認ダイアログが開き、ユーザーが削除するかどうかを確認します。確認ダイアログを表示するには、カスタム バインディング名を使用していますconfirm。ユーザーが削除ボタンをクリックするたびに、confirmMessageText (要素に関連付けられたオブザーバブル) の値が変更され、confirmバインディングの更新関数が呼び出されます。この機能から、ユーザーは確認ダイアログの決定に基づいてアイテムを削除できます。私はFIDDLEの例も作成しました:

http://jsbin.com/ocacap/4/edit

私の問題: カスタム バインディングの更新コールバック関数のパラメーター名に関する問題に直面していますbindingContext。これにより、ノックアウトの特別なプロパティ名にアクセスしています$dataが、各エントリに$dataは配列の最後の要素オブジェクトが含まれています (私のフィドルの例では Deniseです。削除リンクをクリックすると、アラートが発生して値が表示されます$data パラメータの)。

この問題を解決するにはどうすればよいですか。更新コールバック関数で配列の現在の要素オブジェクト エントリを取得するにはどうすればよいですか?

4

1 に答える 1

1

クリック バインディングでは、ノックアウトがすべての依存関係をチェックするように強制する確認メッセージを更新します。この場合、KO は確認バインディングを 3 回実行し、ダイアログが表示される最後の項目は配列内の最後の人です。

これを修正するには、削除する人物オブジェクトを保持する変数を導入する必要があります。

ここではhttp://jsbin.com/ocakap/12/editを修正しています。

于 2012-11-05T15:23:36.693 に答える