保存主干模型时出错:未捕获错误:必须指定“url”属性或函数

时间:2013-04-07 09:13:39

标签: backbone.js

我是骨干的新手,并试图找出为什么在应用程序中简单“保存”模型不起作用。我有一个我正在尝试保存的登录窗口的模型。该模型初始化如下:

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下看到。这应该是这样吗?

1 个答案:

答案 0 :(得分:2)

默认值哈希(或函数)用于指定模型属性的默认属性。但是urlRootBackbone.Model的单独属性,需要设置根级别:

window.myapp.Models.Login = Backbone.Model.extend({
    urlRoot: '/rest/login',
    defaults:{
        modelType:'login',       
        password: "",
        rememberMe: false,
        isAuthenticated: false
    }
})