Javascript 敲除引用错误-属性在';现在
我正在使用JQuery进行AJAX调用,并从MVC控制器发送JSON。当成功回调运行时,我将其传递给视图模型上的可观察对象。因此,我在视图模型上有一个名为list的属性,我发送了以下JSON:Javascript 敲除引用错误-属性在';现在,javascript,knockout.js,Javascript,Knockout.js,我正在使用JQuery进行AJAX调用,并从MVC控制器发送JSON。当成功回调运行时,我将其传递给视图模型上的可观察对象。因此,我在视图模型上有一个名为list的属性,我发送了以下JSON: { Items: [ { .. }, { .. }] } 模板和容器如下所示: <div data-bind="template: {name:'Template', data:list}"></div> <script type="text/html" id="Temp
{ 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">
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
}
});
谢谢。以下功能应该可以使用:
<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">
<span data-bind="text: value"></span>
</ul>
</section>
</script>
在
init
函数中,执行ajax调用并绑定数据 以下方法应该有效:
<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">
<span data-bind="text: value"></span>
</ul>
</section>
</script>
在
init
函数中,执行ajax调用并绑定数据 我不确定这意味着什么,但我认为您应该得到一个错误,因为“d”不是上面的列表,而是函数的参数。您不应该将视图模型存储在变量中并更改以下内容:
success: function(d) {
d.list(d); //d is JSON laid out above
}
为此:
success: function(d) {
viewModel.list(d); // d is JSON laid out above
}
我不确定这意味着什么,但我认为您应该得到一个错误,因为“d”不是上面的列表,而是函数的参数。您不应该将视图模型存储在变量中并更改以下内容:
success: function(d) {
d.list(d); //d is JSON laid out above
}
为此:
success: function(d) {
viewModel.list(d); // d is JSON laid out above
}
当绑定被应用时它存在吗?你没有提供太多的代码,但是从你所说的,如果你通过ajax获取项目,并且绑定在ajax调用之前被应用,那么它就不存在了。是的,Keith可能是对的,尝试创建一个fiddle,我们应该能够确定它。当应用绑定时它存在吗?您没有提供太多代码,但是从您所说的,如果您通过ajax获取项目,并且在ajax调用之前应用了绑定,那么它就不存在了。是的,Keith可能是对的,尝试创建一个小提琴,我们应该能够确定它。是的,这是一个打字错误,我已经改为这个,这是模型(通过上下文)。谢谢你的提示。是的,这是一个输入错误,后来我改成了这个,这就是模型(通过上下文)。感谢您的关注。空数据是问题的原因;当我这样做时:self.list=ko.observable({Items:[]});它工作得很好。空数据是问题的原因;当我这样做时:self.list=ko.observable({Items:[]});它工作得很好。