2012-11-08 24 views
7

Tôi mới làm quen với công cụ phát hiện và cố gắng hiểu cách hoạt động của nó.không thể lấy thuộc tính đối tượng được nhúng bằng cách sử dụng ember.js với dữ liệu ember

Tôi đã xác định một cửa hàng có đồ đạcAdapter làm bộ điều hợp (rev 7). tôi đã xác định hai mô hình:

App.Tag = DS.Model.extend({ 
    name: DS.attr('string'), 
    item: DS.belongsTo('App.Item') 
}); 

và:

App.Item = DS.Model.extend({ 
    name: DS.attr('string'), 
    tags: DS.hasMany(App.Tag, { embedded:true }), 
}) 

Tôi cũng điền vào đồ đạc của họ liên quan và cuối cùng một bộ điều khiển:

App.itemsController = Ember.ArrayController.create({ 
    content: App.store.findAll(App.Item) 
}); 

tôi đã xác định một hàm bên trong Mô hình App.Item:

tagline: function(){ 
    return this.get('tags').toArray().map(function(tag){ 
     return tag.get('name'); 
    }).join(','); 
}.property('[email protected]') 

Đây là jsfiddle tương ứng: http://jsfiddle.net/K286Q/29/

Câu hỏi của tôi là:

  • Tôi đang làm gì sai?
  • Tại sao nó thấy một số thẻ được liên kết với mục đầu tiên, nhưng không thể lấy tên của chúng?

Trả lời

8

Bạn đang chạy chống lại một vài thay đổi đột phá trong phiên bản hiện tại của dữ liệu ember.

Đầu tiên là, kể từ phiên bản 6 của dữ liệu ember, ID được chuẩn hóa chuỗi và phải được biểu diễn dưới dạng chuỗi trong đồ đạc. Lưu ý rằng bộ điều hợp REST sẽ chuyển đổi số/chuỗi, nhưng bộ điều hợp cố định không thực hiện bất kỳ chuyển đổi nào. Đây là một nguồn gây nhầm lẫn phổ biến (xem the previous question).

Điều thứ hai là hỗ trợ cho các đối tượng dữ liệu được nhúng đã tạm thời bị xóa khỏi dữ liệu ember. Tôi khá chắc chắn rằng tính năng này sẽ được giới thiệu lại một cách tốt hơn so với hỗ trợ {embedded: true} trong các thuộc tính. IMO, nhúng là nhiều hơn một mối quan tâm adapter và không thực sự thuộc về định nghĩa của mô hình.

tôi điều chỉnh đồ đạc của bạn và có ví dụ của bạn làm việc ở đây: http://jsfiddle.net/dgeb/zHz4Y/

+0

Cám ơn giải thích detailled và rõ ràng cũng như các ví dụ được cập nhật –

+0

hữu ích! Việc thiếu (đầy đủ?) Id-to-string coersion trong đồ đạc chỉ bit tôi trong rev 11 là tốt. Tốt để biết! –

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