将主干模型属性值设置为另一个模型
Set backbone model attribute value to another model
我可以设置另一个主干模型作为其属性吗?
我有一个表示基本实体的模型,我想将其重用为其他实体的一部分。但是,看起来 Backbone 的模型属性值只能是字符串。
排序答案:是的,您可以:
myHouse.set({ door: new Door() })
但是,在我看来,这样做不是一个好主意,因为我认为 Backbone 不希望在Model.attributes
中找到Objects
。我没有尝试,但我认为如果属性的某人是对象,则像Model.toJSON
这样的方法不会有正确的行为。
但是话虽如此,我认为在模型中声明引用以下对象的真实属性没有任何问题:
myHouse.door = new Door();
如果我理解正确,您需要做这样的事情:
var ModelOne = Backbone.Model.extend({
method : function() {
console.log('ModelOne > method');
},
sayHello : function() {
console.log('ModelOne > hello');
}
});
var ModelTwo = ModelOne.extend({
method : function() {
ModelOne.prototype.method.apply(this);
console.log('ModelTwo > method');
}
});
var methodTwo = new ModelTwo();
methodTwo.method();
methodTwo.sayHello();
输出:
ModelOne > method
ModelTwo > method
ModelOne > hello
将Backbone.Model
设置为另一个模型属性的另一种变体是将其设置为默认值:
var UserModel = Backbone.Model.extend({
defaults: {
id: null,
name: null,
address: new AddressModel()
}
});
var someUser = new UserModel();
someUser.address.set('country', 'ZA');
当您执行someUser.save()
时,包含在someUser.attributes.address
中的数据将是一个通常的数据对象。
!我还没有测试过的一件事是AddressModel
人口someUser.fetch()
相关文章:
- 如何在ExtJs4应用程序上为视图、存储和模型设置自定义文件夹名称
- 是否可以使用flexbox显示模型设置元素的滚动位置
- 从骨干集合筛选模型,然后为这些模型设置属性
- 无法将对象列表从视图模型设置为 javascript 变量
- 智能表通过ng模型设置值时不会触发任何事件
- 将ng模型设置为与变量同名,而不是引用该变量
- 角度防止将模型设置为无效的未定义
- Ember.js{{render}}助手模型设置不正确
- ng 模型设置值为选择
- 骨干.js:有没有办法在创建集合时为集合中的所有模型设置属性
- MVC Javascript基于模型设置文本输入值
- 基于mvc模型设置html复选框复选值
- 如何将骨干模型设置为对象'的子数组
- 将“模型”设置为阵列中的特定对象
- 将数据模型设置为其他数据模型的属性
- angularjs ng模型设置默认值
- 控制器中不更新ng模型设置的值
- 将模型设置在场景的中心,分为三个部分
- 顺序主干模型.设置覆盖模型.改变属性
- 如何将 ng-option 模型设置为对象的值