我是骨干的新手,并试图找出为什么在应用程序中简单“保存”模型不起作用。我有一个我正在尝试保存的登录窗口的模型。该模型初始化如下:
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下看到。这应该是这样吗?
答案 0 :(得分:2)
默认值哈希(或函数)用于指定模型属性的默认属性。但是urlRoot是Backbone.Model
的单独属性,需要设置根级别:
window.myapp.Models.Login = Backbone.Model.extend({
urlRoot: '/rest/login',
defaults:{
modelType:'login',
password: "",
rememberMe: false,
isAuthenticated: false
}
})