2013-02-04 52 views

Trả lời

14

Tôi biết rằng câu hỏi này cũ và được trả lời, nhưng vì đây là một trong những kết quả tìm kiếm hàng đầu cho "ember hasone", tôi muốn chia sẻ những phát hiện của mình về chủ đề này. Tôi đã đọc liên kết trong câu trả lời đầu tiên nhưng ví dụ này đã lỗi thời.

Cờ "được nhúng" đã lỗi thời, "DS.RESTAdapter.map" không phải là chức năng và phương thức "DS.hasOne" không được dùng nữa.

Giải pháp 1.0.0-beta.2 hiện tại để mô phỏng "mối quan hệ hasOne" chỉ đơn giản là sử dụng "DS.belongsTo". Chúng không khác lắm và bạn chỉ cần thêm hasOne foreignKeys vào tập kết quả của bạn giống như bạn làm với thuộc tính.

Nguồn:https://github.com/emberjs/data/commit/a466741a36731c5d382df33461268024627325ef

Dưới đây là một phản ứng máy chủ ví dụ từ một mô hình phức tạp.

{"users": [{ 
    "id": 1, 
    "name": "John Doe", 
    "profile": 27,  // merged hasone 
    "image": 3,   // merged hasone 
    "account_id": 64  // an actual belongsTo 
}]} 

Và sau đó là mô hình

App.User = DS.Model.extend({ 
    name: DS.attr('string'), 
    profile: DS.belongsTo('profile'), 
    image: DS.belongsTo('image'), 
    account_id: DS.belongsTo('account') 
}); 

Hy vọng điều này sẽ giúp mọi người tìm kiếm thông tin về làm thế nào để mô hình một hasOne

1

Bạn phải đặt ánh xạ trên bộ điều hợp, vui lòng xem this answer để biết ví dụ hoạt động.

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