【发布时间】:2011-06-14 23:13:32
【问题描述】:
我有一个关于 Backbone.js 的 get 和 set 函数的简单问题。
1) 使用下面的代码,如何直接“获取”或“设置”obj1.myAttribute1?
另一个问题:
2) 在模型中,除了 defaults 对象之外,我可以/应该在哪里声明模型的其他属性,以便可以通过 Backbone 的 get 和 set 方法访问它们?
var MyModel = Backbone.Model.extend({
defaults: {
obj1 : {
"myAttribute1" : false,
"myAttribute2" : true,
}
}
})
var MyView = Backbone.View.extend({
myFunc: function(){
console.log(this.model.get("obj1"));
//returns the obj1 object
//but how do I get obj1.myAttribute1 directly so that it returns false?
}
});
我知道我能做到:
this.model.get("obj1").myAttribute1;
但这是好的做法吗?
【问题讨论】:
-
虽然这不是问题的答案:每当在
defaults(本例中为obj1)中指定一个对象(通过引用传递的任何内容)时,那个same对象将在模型的所有实例之间共享。当前的做法是将defaults定义为一个函数,该函数返回一个用作默认值的对象。 backbonejs.org/#Model-defaults(见斜体注) -
@JonathanF 评论不适用于 answers,因此您从不需要声明 :)
标签: javascript backbone.js backbone-model