2016-02-12 22 views
6

Tôi có hai tuyến đường được lồng ghép như thế này.Làm cách nào để thêm lớp đang hoạt động chỉ cho các tuyến đường chính xác và không phải là tuyến đường mẹ trong js ember?

router.js

this.route('profile', function() { 
    this.route('edit'); 
}); 

và vài liên kết navbar cho các đường bay như thế này ..

navbar.hbs

{{#link-to 'profile' tagName="li"}}<a href>View Profile</a>{{/link-to}} 
{{#link-to 'profile.edit' tagName="li"}}<a href>Edit Profile</a>{{/link-to}} 

Các link-to helper thêm active lớp vào thẻ li tại đây. Vì vậy, khi tôi đang ở profile tuyến đường, liên kết đầu tiên có active lớp học và khi tôi ở trong số profile.edit tuyến đường, cả hai liên kết đều có lớp active. (rõ ràng vì cả hai tuyến đường được kích hoạt khi profile.edit được truy cập.)

Làm cách nào để tránh đường liên kết mẹ để có được lớp active khi ở trong tuyến đường dành cho trẻ em?

Về cơ bản tôi không muốn liên kết đầu tiên (đến profile) để có active lớp khi ở trong profile.edit tuyến đường.

+0

Bạn có thể sử dụng 'current-when', mặc dù tôi nghĩ rằng sẽ che giấu thực tế rằng các tuyến đường có thể không được lồng trong trường hợp đó. – locks

Trả lời

12

Tôi đã tìm ra nếu có ai khác đang gặp phải vấn đề tương tự.

Tôi vừa thay đổi liên kết thành profile và đặt nó thành rõ ràng profile.index.

navbar.hbs

{{#link-to 'profile.index' tagName="li"}}<a href>View Profile</a>{{/link-to}} 
{{#link-to 'profile.edit' tagName="li"}}<a href>Edit Profile</a>{{/link-to}} 

Bằng cách này, khi trong profile.edit tuyến đường, mắt xích đầu tiên không nhận được lớp active.

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