, dün rotayı kapmak sağlayacak orada herhangi özelliğini görmüyorum. Önceden 4'te son rota için bir özellik vardı, ama çalışmak için zor bir özellikti. öncesi 4'te olduğu gibi
Çözümümün nedenle aynıdır: Sana içine gezinmek yolları işlemek için kendi mixin oluşturmak istiyorum ve yolların bu listeden, sen peşinde olduğunuz yolu ne olursa olsun elde edebilirsiniz: geçerli bir, sonuncusu, vesaire ... burada
jsFiddle: http://jsfiddle.net/sMtNG/
mixin
yapmanız gereken ilk şey bizi içine yolları itmek sağlayacak mixin oluşturmaktır HistoryController
. Bunu, bir rotayı her hareket ettirdiğinizde, elbette çağrılan bir setupController
yöntemi oluşturarak yapabiliriz.
App.HistoryMixin = Ember.Mixin.create({
setupController: function() {
this.controllerFor('history').pushObject(this.get('routeName'));
}
});
Rotayı HistoryController
'a zorluyoruz.
Tarih Kontrolör
şu anda var olmayan bir HistoryController
içine routeName
itiyorsun yana, devam edin ve özel bir şey kesinlikle olan bu oluşturmanız gerekir.
App.HistoryController = Ember.ArrayController.extend();
Endeksi Kontrolör
HistoryController
mağaza beri gittikten ettik yollarının listesi, bu tür IndexController
gibi diğer kontrolörler, erişilebilir buna ihtiyacınız olur, bu nedenle needs
kullanacağız hangi denetleyicide erişilebilir olması gerektiğini belirtmek için.
App.ApplicationController = Ember.Controller.extend({
needs: ['history']
});
Şimdi biz yolların bir takip için gereken her şeyi mixin
Uygulamak ve bu yüzden bizim yolları bu mixin uygulamak gerektiğini belirtmek gerekir.
App.CatRoute = Ember.Route.extend(App.HistoryMixin);
Şablon biz HistoryController
var ki, şimdi az değil
Son olarak hangi bizim IndexController
erişebilir ve mixin HistoryController
içine her erişilen rotayı iter, biz çıkışa bizim uygulama görünümünü kullanabilirsiniz rotaların bir listesini yapın ve son rotayı belirtin. Tabii ki sizin durumunuzda, son rotayı eksi birine ihtiyacınız olacak, fakat her şeyi yapmamda bir anlamı yok!
<h1>Routes History ({{controllers.history.length}})</h1>
<ul>
<li>Last Route: {{controllers.history.lastObject}}</li>
{{#each controllers.history}}
<li>{{this}}</li>
{{/each}}
</ul>
Umarım bu sizi düz ve dar olana götürür. Http: // stackoverflow öğesinin olası kopyası
.com/questions/14831668/yol-i-gelen-veya-önceki-rota –
Ayrıca bu sorunu da çalışıyorum. Eğer bir şey varsa daha sonraki bir MVC sürümünde güzel olurdu: Request.RawUrl.PreviousRoute – JoshYates1980
Sadece 'history.back()' yapın. Ember böyle çalışmak için tasarlandı. Kendi tarihinizi korumak için bir sürü makine kurmaya gerek yok. Tarayıcı zaten kendine aittir. –