骨干模型具有另一骨干模型的性质

时间:2013-03-22 07:12:54

标签: javascript backbone.js

我不知道JS / Backbone是否支持这种情况,但如果我有骨干模型,我可以将其用作另一个骨干模型的属性吗?

e.g。

var Address = Backbone.Model.extend({
  street: ''
});

var Person = Backbone.Model.extend({
  name: '',
  Address: ''
});

var p1 = new Person();
p1.set('name', 'crystal');
console.log(p1.get('name'));
p1.set('Address.street', '1234');
console.log(p1.get('Address.street'));

这是如何使用Backbone来组合对象的吗?感谢。

3 个答案:

答案 0 :(得分:0)

您可以考虑使用Backbone-Relational

它增加了对模型之间嵌套双向关系的支持,例如一对一,一对多。

答案 1 :(得分:0)

为什么不让address模型中的Person条目成为Address模型的新实例?

e.g。

var Address = Backbone.Model.extend({
  street: ''
});

var Person = Backbone.Model.extend({
  name: '',
  address: null
});

var p = new Person;
p.set('address', new Address({street: 'crystal'}));
p.get('address').get('street');

答案 2 :(得分:0)

当然,您可以使用任何JavaScript有效对象(包括Backbone模型对象)设置模型属性。但请注意避免嵌套模型太深,因为您不希望深度属性访问链,这需要您对每个级别访问进行空检查:

p.get('parent').get('child').get('child').get('child').get('prop');