2

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

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

4

1 回答 1

2

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

window.myapp.Models.Login = Backbone.Model.extend({
    urlRoot: '/rest/login',
    defaults:{
        modelType:'login',       
        password: "",
        rememberMe: false,
        isAuthenticated: false
    }
})
于 2013-04-07T09:49:35.400 回答