0

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

例如

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 应该如何用于组合对象的方式吗?谢谢。

4

3 回答 3

0

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

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

于 2013-03-22T08:24:23.240 回答
0

您可以考虑使用Backbone-Relational

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

于 2013-03-22T07:21:01.890 回答
0

为什么不将模型中的address条目作为Person模型的新实例Address

例如

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');
于 2013-03-22T07:33:53.637 回答