2

举个例子:

//Parent object:
App.Parent = DS.Model.extend({
children: DS.hasMany('child');
name: DS.attr('string');
});

//Child object:
App.Child = DS.Model.extend({
parent: DS.belongsTo('App.Parent');
name: DS.attr('string');
});

我正在尝试创建一个新的父对象,其中包含以下许多子对象:

var child1 = App.Child.createRecord({
name: "Test"
});

var child2 = App.Child.createRecord({
name: "Test2"
});

var newChildrenArray = [];
newChildrenArray.pushObject(child1);
newChildrenArray.pushObject(child2);

var parent = App.Parent.createRecord({
children: newChildrenArray,
name: "Hello :-)"
});

如果我通过警报循环访问,我可以访问 parent.get('children') 并访问孩子的名字。但是在我的车把模板中,孩子不会像我的父母和孩子FIXTURES那样出现在父母的下方。我是否需要告诉我的模板以某种方式重新渲染,或者模板没有加载 hasMany 关联,还是我创建的关系错误?

我正在使用最新版本的 Ember、Ember-Data、Handlebars 等,尽管尝试了其他版本无济于事,所以我一定做错了什么。

4

1 回答 1

0

我尝试了各种方法将我的数组放到父对象的“子”属性上,但我在 Github 上的拉取请求代码片段中偶然发现了这一点,现在它正在工作。

我猜我的数组是父对象属性的错误类型,我仍然不知道如何创建一个单独的数组以稍后传递给对象,但直接推入它是可行的!

var child1 = App.Child.createRecord({
name: "Test"
});

var child2 = App.Child.createRecord({
name: "Test2"
});

/*var newChildrenArray = [];
newChildrenArray.pushObject(child1);
newChildrenArray.pushObject(child2);*/

var parent = App.Parent.createRecord({
name: "Hello :-)"
});    

parent.get('children').pushObject(child1);
parent.get('children').pushObject(child2);
于 2013-06-12T13:13:17.003 回答