我正在使用 JQuery 进行 AJAX 调用并从 MVC 控制器发送 JSON。当成功回调运行时,我将它传递给我的视图模型上的一个 observable。所以我在视图模型上有一个名为 list 的属性,我发送了这个 JSON:
{ Items: [ { .. }, { .. }] }
模板和容器如下所示:
<div data-bind="template: {name:'Template', data:list}"></div>
<script type="text/html" id="Template">
<section class="List">
<ul id="MyList" data-bind="foreach:Items">
我尝试将此绑定到视图,但出现错误:
Microsoft JScript runtime error: Unable to parse bindings.
Message: ReferenceError: 'Items' is undefined;
Bindings value: foreach:Items
Items 是正确的,它被正确地分配给了视图模型,并且我验证了 Items 属性确实不是未定义的。我在另一个视图中有相同的确切代码,但它在那里而不是在这里工作。知道为什么,这个错误是由什么引起的吗?
编辑:我有一个看起来像并且必然会这样的视图模型:
function viewModel() {
var self = this;
self.list = ko.observable(null);
}
$.ajax({
.
.
context: model, //reference to view model, which is a valid reference
success: function(d) {
this.list(d); //d is JSON laid out above
}
});
谢谢。