0

这是我的模型的身体

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

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

4

1 回答 1

2

Backbone.Model将数据存储在attributes属性内。从骨干文档

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

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

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

于 2013-02-19T17:40:59.130 回答