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 に答える