私はこの非常に単純なテストビューを持っています
<button data-bind="click: add">Add</button>
<table data-bind="foreach: items">
<tr>
<td data-bind="text: name"></td>
<td><button data-bind="click: $root.remove">Remove</button></td>
<tr>
</table>
フィドル: http: //jsfiddle.net/6PP5m/
問題は、removeメソッドでのこのコンテキストが、クリックイベントを発生させた子ビューモデルであるということです。
私が好きな解決策を見つけられませんでした。コンストラクターに自己変数を追加して、「this」の代わりにそれを使用できますが、「this」キーワードを使用するためのよりクリーンなコードとOO
フィドル: http: //jsfiddle.net/Qn2CM/
プロキシ関数デリゲートを作成することもできますが、それでもあまりクリーンなコードではありません
フィドル: http: //jsfiddle.net/gYhMr/
どういうわけか、これのコンテキストを正しい正しいスコープ(この場合は$ root)に設定するようにkoに指示したいのですが、それは可能ですか?