2013-04-15 24 views
6

Có cách nào để tạo động liên kết bằng cách sử dụng trình trợ giúp link-to bằng cách chuyển một biến với đường dẫn tuyến đường không?EmberJS - Cách tạo liên kết động với linkTo?

Ví dụ, thay vì cứng mã hóa các con đường như thế này:

{{#linkTo "route.subroute" model}}{{model.title}}{{/linkTo}} 

Tôi muốn để có thể vượt qua link-to helper một biến mà giữ con đường như thế này:

{{#linkTo destination model}}{{model.title}}{{/linkTo}} 

Các trường hợp sử dụng cho điều này là cho phép tôi hợp nhất các mẫu chỉ khác nhau theo đường dẫn này. Ví dụ, nếu có hai bộ sưu tập với mỗi điểm đến khác nhau. Khi được hiển thị với mỗi trình trợ giúp, các mẫu giống nhau ngoại trừ đường dẫn trong link-to.

Nếu tôi có thể lưu biến này trong trình điều khiển của chế độ xem và chuyển nó, tôi chỉ có thể sử dụng một mẫu cho cả hai danh sách.

Tôi đã nghĩ về tự xây dựng con đường như thế này:

<a {{bindAttr href="destination"}}>{{model.title}}</a> 

Nhưng điều này không có sự tích hợp với các bộ định tuyến để xác định trạng thái hoạt động mà tôi cần.

+0

thấy https://github.com/emberjs/ember.js/pull/2252 và https://github.com/emberjs/ember.js/issues/2462 Tôi nghĩ rằng hiện tại nó không thể thực hiện được. –

Trả lời

2

Có cách nào để tự động tạo liên kết bằng liên kếtĐể trợ giúp bằng cách chuyển một biến với đường dẫn tuyến đường không?

Hiện tại không có.

Trường hợp sử dụng cho việc này là cho phép tôi hợp nhất các mẫu chỉ khác nhau theo đường dẫn này. Ví dụ, nếu có hai bộ sưu tập với mỗi điểm đến khác nhau.

Đồng ý đây là trường hợp sử dụng hợp lệ, tôi hy vọng trình trợ giúp linkTo sẽ hỗ trợ trong tương lai. Trong khi đó kể từ khi bạn chỉ có hai bộ sưu tập bạn có thể thực hiện điều này với điều kiện trong mẫu

{{#if isRouteOne}} 
    {{#linkTo "routeOne.subrouteOne" model}}{{model.title}}{{/linkTo}} 
{{else}} 
    {{#linkTo "routeTwo.subrouteTwo" model}}{{model.title}}{{/linkTo}} 
{{/if}} 
+0

Vâng, tôi đã viết 'hai' làm đơn giản hóa vấn đề; Thật không may, tôi thực sự có 7.Có một để quản lý rằng nhiều biến boolean sẽ được khá tẻ nhạt, nhưng đối với trường hợp đơn giản, tôi vẫn thích câu trả lời như là một công việc tạm thời xung quanh. –

+0

lol đồng ý với 7 nó sẽ không được vui vẻ. trong trường hợp đó có thể có ý nghĩa để viết một helper tay lái nhỏ. hy vọng rằng PR @ sly7_7 được đề cập sẽ sớm được hợp nhất. –

2

Thay vì {{linkTo}}, bạn có thể sử dụng {{action}} và xử lý các trường hợp chuyển theo tên đường chỉ định trong destination tài sản của mô hình.

+0

Anh ấy cần hỗ trợ "hoạt động". – Nonconformist

0

Có một câu hỏi SO tương tự khác, trong đó tôi answer câu hỏi này. Giải pháp có thể sử dụng phiên bản nội tuyến của trình trợ giúp link-to.

Trong tình huống này, chúng ta sẽ có:

{{link-to model.title destination model}} 

Trong đó sẽ được biên dịch để:

<a href="#/route/subroute/3856"> 
    Click me 
</a> 
Các vấn đề liên quan