Tôi có một phân cấp tuyến đường lồng nhau mà tôi cần cho ứng dụng của mình để theo dõi các lựa chọn mô hình người dùng. Tôi đang cố gắng sử dụng một mẫu ứng dụng chính và có mỗi tuyến đường render vào một ổ cắm duy nhất trên mẫu đó. Điều này hoạt động khi tôi duyệt qua phân cấp tuyến đường từ cha mẹ sang con.Các tuyến đường lồng nhau hiển thị vào cùng một mẫu/điểm ngắt trên nút quay lại trình duyệt, nhấp vào
Tuy nhiên, khi bạn nhấp vào nút quay lại trình duyệt để sao lưu hệ thống phân cấp tuyến đường, tuyến đường mẹ renderTemplate hook không kích hoạt. Điều này dẫn đến việc đứa trẻ chưa được khám phá ra khỏi cửa hàng và không có gì được trả lại vào nó.
Dưới đây là một ví dụ:
App = Ember.Application.create({});
App.Router.map(function(){
this.resource("animals", function(){
this.resource("pets", function(){
this.route('new')
})
})
});
App.PetsView = Ember.View.extend({
templateName : 'wild/pets'
});
App.AnimalsRoute = Ember.Route.extend({
renderTemplate: function() {
this.render({
into: "application",
outlet : "A"
})
}});
App.PetsRoute = Ember.Route.extend({
renderTemplate: function() {
this.render({
into: "application",
outlet : "A"
})}});
App.PetsNewRoute = Ember.Route.extend({
renderTemplate: function() {
this.render({
into: "application",
outlet : "A"
})}});
Với các mẫu:
<script type="text/x-handlebars" data-template-name="application">
<h1>{{#linkTo "animals"}}Hello from Ember.js</h1>{{/linkTo}}
{{outlet A}}
</script>
<script type="text/x-handlebars" data-template-name="animals">
{{#linkTo "pets"}}This is animals list{{/linkTo}}
</script>
<script type="text/x-handlebars" data-template-name="wild/pets">
{{#linkTo "pets.new"}}This is pets list{{/linkTo}}
</script>
<script type="text/x-handlebars" data-template-name="pets/new">
This is pet creation
</script>
Và đây là một jsfiddle với mã này. Nhấp vào các liên kết để duyệt qua các tuyến đường, sau đó nhấp vào nút quay lại trình duyệt và mẫu ứng dụng được hiển thị mà không có gì được nối vào ổ cắm của nó.
Có cách nào để buộc một tái render, hay tôi sẽ về vấn đề này một cách sai lầm?