我有一个项目,我无法弄清楚如何从容器模板调用的单击事件中访问 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 (Entries) 时我得到 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);
}
};
我是一个淘汰赛新手..有人可以告诉我我在这里做错了什么吗?谢谢!