2012-09-24 4 views
6

Ember Dataモデルの周りに頭を浮かべて、store.findAll()を使って見つかったオブジェクトのコレクションをemberデータモデルのhasManyの関係に割り当てようとしました。EmberデータのhasMany関係への割り当て

私は定義された2つのモデルがあります:oneBranch.get('lotsOfLeaves.length')0あるように私はcreateRecord()

App.store.loadMany(App.Leaf,[ 
     { id: 1, text: "Hello, I'm leaf 1", branch_id: 1 }, 
     { id: 2, text: "Hello, I'm leaf 2", branch_id: 1 } 
    ]); 
    var allLeaves = App.store.findAll(App.Leaf); 
    var oneBranch = App.Branch.createRecord({ id: 1, lotsOfLeaves: allLeaves }); 

の一部として関係を割り当て、それは(静かに)失敗した場合

App.Leaf = DS.Model.extend({ 
    text: DS.attr('string'), 
    branch: DS.belongsTo('App.Branch') 
}); 

App.Branch = DS.Model.extend({ 
    lotsOfLeaves: DS.hasMany('App.Leaf') 
}); 

を。

var all = App.store.findAll(App.Leaf); 
    oneBranch.set('lotsOfLeaves', all); 

私は個別にそれぞれの葉を追加するoneBranch.get('lotsOfLeaves')pushObject()を使用していますが、唯一の方法ということであることを理解:私は協会の後に関係を割り当てると

同様に、それは静かに失敗しますか?

答えて

4

MutableArrayクラスでは、すべてを一度に追加するために使用できるはずのpushObjects()メソッドも定義されています。

ドキュメントはこちらhttp://docs.emberjs.com/symbols/Ember.MutableArray.html#method=pushObjects

+0

もちろん、ありがとう@MikeHickman。あなたが 'var autoupdate = App.store.findAll(...)'のようなものを使うときに得られるバインディングを利用したいと思っていましたが、CRUD操作は自動的に反映されていました。この場合、 'oneBranch.get( 'lotsOfLeaves')'は常にシステム内のすべての 'App.Leaf'オブジェクトを含みます。私は手動でそれを管理する必要があるように見えます。 – EdgifyJP

+0

また、アソシエーションに何かを割り当てようとすると何らかのメッセージで失敗した場合にはうれしいでしょう。しかし、うまくいけばそれは時間とともに改善されるだろう。 – EdgifyJP

関連する問題