コンテナ テンプレートから呼び出されたクリック イベントから observableArray にアクセスする方法がわからないプロジェクトがあります。私はここにフィドルで簡素化された例を持っています:
クリック イベントはテンプレートで指定され、アイテム自体のプロパティから各アイテムのテンプレートが動的に読み込まれます。
したがって、アイテムの例は次のとおりです。
{ID: 1, TemplateName: 'template1', Label: 'Name', Description: 'Your name'}
「親」テンプレートは次のようになります。
<script type="text/html" id="tpl-placeholder">
<div class="entry" data-bind="click: $parent.RemoveEntry, attr: { id: ID}, template: {name: TemplateName }"></div>
</script>
動的に読み込まれたテンプレートは次のようになります。
<script type="text/html" id="template1">
<h1 data-bind="text: Label"></h1>
<div data-bind="text: Description"></div>
</script>
クリック イベントを処理するメソッド (この場合は RemoveEntry) で、observableArray (エントリ) にアクセスしようとすると null が返されます。
ビューモデルは次のとおりです。
var viewModel = {
Name: ko.observable("Entries"),
Entries: ko.observableArray( entries ),
RemoveEntry: function (entry) {
// how do I access the "Entries" list here - this.Entries returns null
$("#debug").text(this.Entries == null);
this.Entries.remove(entry);
}
};
私はノックアウトの初心者です..誰かが私がここで間違っていることを教えてもらえますか? ありがとう!