2012-09-24 33 views
6

Tôi đang cố gắng lấy đầu các mô hình Dữ liệu Ember và gặp sự cố khi chỉ định một tập hợp các đối tượng được tìm thấy bằng cách sử dụng store.findAll() cho mối quan hệ hasMany của mô hình dữ liệu ember.Chỉ định mối quan hệ hasMany trong Dữ liệu Ember

Tôi có hai mô hình định nghĩa:

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

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

Nếu tôi giao cho mối quan hệ như một phần của 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 }); 

sau đó nó không thành công (âm thầm) như oneBranch.get('lotsOfLeaves.length')0.

Tương tự như vậy, nó không âm thầm nếu tôi gán các mối quan hệ sau khi hiệp hội:

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

Tôi hiểu rằng tôi có thể sử dụng pushObject() trên oneBranch.get('lotsOfLeaves') thêm mỗi lá cá nhân nhưng là con đường duy nhất?

Trả lời

4

Lớp MutableArray cũng định nghĩa phương thức pushObjects() mà bạn có thể sử dụng để thêm tất cả chúng cùng một lúc.

Tài liệu có tại đây: http://docs.emberjs.com/symbols/Ember.MutableArray.html#method=pushObjects

+0

Ah, tất nhiên. Cảm ơn @MikeHickman. Mặc dù, tôi đã hy vọng để tận dụng lợi thế của các ràng buộc bạn nhận được khi sử dụng một cái gì đó như 'var autoupdate = App.store.findAll (...)' là bất kỳ hoạt động CRUD được tự động phản ánh. Vì vậy, trong trường hợp này 'oneBranch.get ('lotsOfLeaves')' sẽ luôn chứa tất cả các đối tượng 'App.Leaf' trong hệ thống. Có vẻ như tôi sẽ phải tự quản lý điều đó. – EdgifyJP

+0

Ngoài ra, sẽ là tốt đẹp nếu cố gắng gán một cái gì đó cho hiệp hội thất bại với một tin nhắn của một số loại. Nhưng hy vọng rằng sẽ được cải thiện theo thời gian. – EdgifyJP

Các vấn đề liên quan