2013-06-12 96 views
2

看看下面的例子:如何将对象数组添加到Ember中具有hasMany关系的新创建的对象中?

//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(“孩子”)和访问孩子的名字,如果我通过警报循环。但在我的把手模板中,孩子不会出现在父母的下方,就像他们为我的父母和孩子做的FIXTURES一样。 我是否需要告诉我的模板以某种方式重新渲染,或者模板未加载hasMany关联,还是我创建关系错误?

我在最新版本的Ember,Ember-Data,把手等,虽然尝试过其他版本无济于事,所以我必须做错了什么。

回答

0

我想尽我所能的方式让我的数组进入父对象的'children'属性,但我在Github上的pull请求代码片段中偶然发现了这个问题,现在它正在工作。

我想我的数组是父类对象属性的错误类型,我仍然不知道如何创建一个单独的数组,以便传递给对象,但直接将其推送到它的作品!

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); 
相关问题