Có cách nào để chuyển hướng có điều kiện trong Bộ định tuyến Ember.js mà không phá vỡ tính nhất quán nội bộ của bộ định tuyến không?Emberjs: Chuyển hướng có điều kiện trong bộ định tuyến
Trả lời
gì bạn có thể làm (tính đến nay), là một cái gì đó như thế:
root: Ember.Route.extend({
index: Ember.Route.extend({
enter: function(router) {
var logged = /* get from appropriated source... */;
Ember.run.next(function() {
if (logged) {
router.transitionTo('loggedIn');
} else {
router.transitionTo('loggedOut');
}
});
}
}),
loggedIn: Ember.Route.extend({
// ...
}),
loggedOut: Ember.Route.extend({
// ...
})
})
Đừng bỏ lỡ Ember.run.next
như khi bạn đang ở trong enter
, quá trình chuyển đổi trạng thái luôn luôn chờ giải quyết, vì vậy bạn phải chuyển tiếp sau đó.
Chúng tôi sử dụng nó như hiển thị cho authent, nhưng bạn có thể tưởng tượng được sử dụng nó cho bất cứ điều kiện bạn phải ...
Nếu bạn làm điều đó trên 'connectOutlets' thay vì' enter' bạn không cần 'Ember.run.next'. –
Cảm ơn sự chính xác! :-) –
Bạn có ví dụ về cách thực hiện với 'connectOutlets' không? – Qrilka
Tùy thuộc vào những gì bạn đang cố gắng để làm, bạn có thể tìm kiếm sự chuyển tiếp có điều kiện. Điều này được bao gồm trong another stackoverflow question, TLDR trong đó là để kiểm tra this fiddle.
Router mới hiện nay bao gồm một cái móc
beforeModel
mà bạn có thể qua đi để bao gồm logic có điều kiện khi chuyển sang một con đường. Móc beforeModel sẽ được gọi trước khi móc
model
được gọi và nó được thông qua một đối tượng
transition
. Bạn có thể quyết định xem bạn muốn chuyển hướng đến con đường khác sử dụng
transitionToRoute()
hoặc bạn có thể hủy bỏ quá trình chuyển đổi nếu bạn không muốn chuyển hướng bằng cách gọi
transition.abort()
- 1. Emberjs chỉ chuyển hướng để mặc định tuyến đường nếu không có subroute được quy định
- 2. Chuyển hướng có điều kiện trong JSF
- 3. chuyển hướng có điều kiện trong bash
- 4. Apache Camel có điều kiện định tuyến
- 5. Nhiều bộ điều khiển trong định tuyến
- 6. EmberJS Router App: Lượt xem vs Bộ điều khiển
- 7. Django - Chuyển hướng đăng nhập có điều kiện
- 8. Có thể tạo tuyến chuyển hướng này trong Rails không?
- 9. Chuyển hướng đến hành động trong bộ điều khiển khác
- 10. Bộ điều khiển trong lắp ráp riêng và định tuyến
- 11. Chuyển hướng ASP.NET trong Bộ điều khiển cơ sở
- 12. Tìm tuyến đường mẹ ở EmberJS
- 13. request.subdomain không được đặt trong Rails 3 trong khi định tuyến có điều kiện
- 14. Điều kiện nội tuyến trong Jade
- 15. Sự kiện khóa định tuyến để điều khiển khác
- 16. emberjs sự kiện cho khi mô hình thay đổi
- 17. Tại sao không có chuyển hướng Bộ điều khiển nội bộ trong ASP.Net MVC (hoặc CodeIgniter)?
- 18. Sử dụng một con sên trong một tuyến đường emberjs
- 19. Cách chuyển thanh điều hướng và bộ điều khiển điều hướng ở chế độ ngang
- 20. Định tuyến có và không có tên bộ điều khiển trong ASP.NET MVC 4
- 21. trường hợp mặc định trong một điều kiện chuyển đổi
- 22. Làm cách nào để chuyển hướng điều kiện đầu ra của lệnh thành/dev/null có điều kiện?
- 23. Chuyển nhượng trong điều kiện
- 24. Cách kiểm tra bộ định tuyến Meteor hoặc bộ định tuyến Iron với laika
- 25. MVC chuyển hướng để mặc định đường
- 26. Kế thừa và định tuyến bộ điều khiển MVC Spring
- 27. Bộ điều khiển MVC sủi bọt trở lại bộ định tuyến?
- 28. tuyến chuyển hướng đến một số khác
- 29. Backbone.js - điều hướng đến tuyến đường sau sự kiện "nhấp" trên một chế độ xem
- 30. chuyển hướng mã hóa sang bộ điều khiển khác nhau
Bạn có thể giải thích thêm một chút lý do tại sao bạn' tái chuyển đổi sang một tuyến đường khác từ 'connectOutlets'? (Tôi là một noob trong ember, vì vậy có lẽ tôi chỉ không hiểu những gì bạn đang cố gắng làm) – MilkyWayJoe
Bằng cách này, các tuyến đường bây giờ có một yếu tố 'chuyển hướng:' bạn có thể ghi đè lên, nó là trong hiện tại hướng dẫn. – totowtwo