我是 Backbone 新手,试图找出为什么在应用程序中简单“保存”模型不起作用。我有一个正在尝试保存的登录窗口模型。模型初始化如下:
window.myapp.login = new window.myapp.Models.Login();
window.myapp.signinBox = new window.myapp.Views.Signin({model: window.myapp.login});
window.myapp.signinBox.render();
现在在signinBox中我监听各种事件,并调用this.model.get和this.model.set - 一切正常。 但是当我尝试打电话时
this.model.save();
我得到:未捕获错误:必须指定“url”属性或函数
模型类如下所示:
window.myapp.Models.Login = Backbone.Model.extend({
defaults:{
modelType:'login',
urlRoot:'/rest/login',
password: "",
rememberMe: false,
isAuthenticated: false
}
})
知道我这里出了什么问题吗?
我注意到的一件事(正如我所说,我是新手,这可能是微不足道的)是我在 this.model 下看不到 urlRoot,而是在 this.model.attributes 下看到。应该是这样吗?
最佳答案
默认哈希(或函数)用于指定模型属性的默认属性。但是urlRoot是 Backbone.Model
的一个单独属性,需要设置为根级别:
window.myapp.Models.Login = Backbone.Model.extend({
urlRoot: '/rest/login',
defaults:{
modelType:'login',
password: "",
rememberMe: false,
isAuthenticated: false
}
})
关于backbone.js - 保存主干模型时出错 : Uncaught Error: A "url" property or function must be specified,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15860781/