请问,有人可以帮我解决这个问题吗?
执行create方法时出现以下错误:
*Uncaught TypeError: Object #<Object> has no method 'baseUri'*
从以下绑定调用此方法:
<form id="createProducts" data-bind="submit: products.create">
当从PreLoad方法调用read方法时,baseUri和items都可用。
当视图模型被定义为一个函数时,我找到了解决这个问题的方法,但在我的例子中,它被定义为一个对象。
这是我的完整 JS 文件
var mm = {
/* Products ********************************************************** */
products: {
items: ko.observableArray([]),
read: function () {
$.getJSON(this.baseUri(), this.items);
},
create: function (formElement) {
$.post(this.baseUri(), $(formElement).serialize(), null, "json")
.done(function (o) {
alert("The Product " + o.Name + " was created.");
this.items.push(o);
});
},
baseUri: function () { return BASE_URI; }
}
};
function PreLoad() {
mm.products.read();
ko.applyBindings(mm);
}
- BASE_URI是在我的母版页中定义的全局变量,我需要它,因为我有多个嵌套视图模型(我从这段代码中删除它们)并且每个 baseUri 都是 BASE_URI +“some_string_value”的组合。无论如何,我也需要访问项目,以更新列表中显示的值。
谢谢!