backbone.js设置模型属性内部字段

时间:2011-12-26 11:00:56

标签: javascript backbone.js

我想设置backbone.js模型的属性,但只设置内部字段而不是整个字段。

示例代码可能是:

model.set('user.avatar', 'img')

我能做什么?

由于

1 个答案:

答案 0 :(得分:19)

您只需制作对象的副本,设置属性,然后在原始模型上重新设置:

var userAttributes = model.get("user");
userAttributes.avatar = "img";
model.set("user", userAttributes)

或者添加一个函数来从对象设置模型上的用户部分:

model = Backbone.Model.extend({
...
setUser: function(attributes){
    var user = this.get("user") || {};
    _.extend(user, attributes);
    this.set({user:user});
},
...

然后传递如下属性:model.setUser({avatar: "img"});