2012-10-06 29 views
10

Tôi có một đối tượng phiên cấp cao nhất có thể có nhiều loa bên dưới.Dữ liệu ember có thực sự hỗ trợ url lồng nhau không?

REST của ish endpoint tôi cho phép tôi để nhận được tất cả các phiên họp như vậy

/buổi/

tôi có thể nhận được tất cả các loa cho một phiên nhất định như vậy

/buổi/1/loa/

với phiên bản hiện tại của ember-dữ liệu tôi có thể thấy nó đang cố gắng để tìm tất cả các loa với url này

/loa/012.

Sử dụng mô hình dữ liệu dưới đây

CodeCamp.Session = DS.Model.extend({ 
    id: DS.attr('number'), 
    name: DS.attr('string'), 
    speakers: DS.hasMany('CodeCamp.Speaker',{nested: true})               
}); 

CodeCamp.Speaker = DS.Model.extend({ 
    id: DS.attr('number'), 
    name: DS.attr('string'), 
    session: DS.belongsTo('CodeCamp.Session',{nested: true}) 
}); 

Tôi được thêm vào "lồng nhau: true" một phần vì tôi muốn ember dữ liệu để xây dựng các yêu cầu

/buổi /% @/loa/

Nhưng điều này không xảy ra -

Tôi biết tôi có thể xác định url theo cách thủ công

Nhưng trong khi làm như vậy, tôi sẽ cần phải cuộn phương thức "buildURL" của riêng mình trong bộ điều hợp REST cơ sở để nó tìm một định dạng như thế này và thêm id cha khi cần thiết (và tôi không muốn làm điều này nếu có thể.).)

Dữ liệu ember có hỗ trợ cho thứ gì đó như thế này ra khỏi hộp hay tôi buộc phải tự mình viết nhiều mã?

Trả lời

7

{nested: true} chưa phải là một tính năng. The pull request is still open.

Ghi đè & sử dụng bộ điều hợp findQuery() để thực hiện yêu cầu GET với URL như vậy.

Ngoài ra, nếu máy chủ của bạn là Rails (và có thể làm việc này cho các khuôn khổ khác), nó có thể để giữ cho các yêu cầu URL single-level, bằng cách thông qua ID cha mẹ như một param chuỗi truy vấn:

/speakers?session_id=1 
+0

nhờ - Tôi đã có thể sử dụng điều này như một công việc xung quanh bây giờ (hy vọng sẽ thấy điều này trong bản phát hành cuối cùng ember.js 1.0 hoặc ngay sau đó) –

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