model的fetch不起作用

时间:2013-02-19 17:38:15

标签: backbone.js

这是我模特的身体

urlRoot: '/users',

parse: function(response) {
   return response.User;
}

以下是我在浏览器中输入/users/1时返回的内容:

{"User":{"id":"1","created":"2013-02-13 09:22:42","modified":"2013-02-13 09:22:42","username":"somesuername","password":"","role":"somerole","token":null,"token_expiration":null}}

所以api有效。 当我执行此操作时:

this.model.id = 1;
this.model.fetch({ success: function(user){
                        console.log(user);    
                   }}); // this.model is instance of my model

我进入控制台:

d {cid: "c4", attributes: Object, _changing: false, _previousAttributes: Object, changed: Object…}
_changing: false
_pending: false
_previousAttributes: Object
attributes: Object
    __proto__: Object
changed: Object
cid: "c4"
id: Array[1]
__proto__: e

所以结果是成功的,模型没有获取任何数据 - 我错过了什么?

1 个答案:

答案 0 :(得分:2)

Backbone.Model将数据存储在attributes属性中。来自Backbone documentation

  

attributes属性是包含模型状态的内部哈希 - 通常(但不一定)是表示服务器上的模型数据的JSON对象的一种形式。它通常是数据库中一行的直接序列化,但它也可以是客户端计算状态。

     

请使用set来更新属性,而不是直接修改它们。

尝试在控制台对象检查器中展开attributes节点,您应该会看到您的数据。