4

是否可以使用嵌套对象作为 Backbone 中的 id 属性?

例如,

var MyModel = Backbone.Model.extend({
        defaults : {
            'info': {
                'name': ""
            },
        },
        idAttribute: "info.name"
}

顺便说一句,以上内容不能作为 ID,我在这里添加它只是为了了解我想要实现的目标。

TIA

4

2 回答 2

4

I don't think you can directly assign a nested object as an idAttribute .

But you can directly set the id on the model when the response is served by the server in the parse method

parse: function(response) {
   response.id = response.info.name;
   return response;
}
于 2013-06-18T09:01:30.280 回答
0

正如@Sushanth 所说,parse这肯定是一个好方法。

但通常在主干模型中使用嵌套对象是不安全的,也不是最好的方法。当您更改response.info.name属性并将事件绑定到 时response.info,您将不会收到通知。

在使用 Backbone 几年后,我想告诉你,将你从服务器接收到的模型解析为原始对象是你能做的最好的事情。

如果您希望您的模型以完全相同的方式返回到服务器,您可以覆盖 toJSON 函数,该函数可以将其转换回来。当然,您需要实现这两个...:/

于 2013-06-18T09:20:00.047 回答