राउटर ऑब्जेक्ट का फिर से निरीक्षण करने के बाद, मुझे वहां कोई भी संपत्ति दिखाई नहीं दे रही है जो आपको अंतिम मार्ग पकड़ने की अनुमति देगी। पूर्व 4 में अंतिम मार्ग के लिए एक संपत्ति थी, लेकिन साथ काम करना मुश्किल था।
मेरा समाधान इसलिए है जैसा कि यह पहले 4 में था: मैं अपने मार्गों को संभालने के लिए अपना खुद का मिश्रण बनाउंगा, और मार्गों की उस सूची से, आप जो भी मार्ग प्राप्त कर सकते हैं उसके बाद आप प्राप्त कर सकते हैं: वर्तमान एक, पिछले एक, वगैरह ...
यहाँ jsFiddle: http://jsfiddle.net/sMtNG/
Mixin
करने के लिए पहली बात यह है कि हम में mixin में मार्गों पुश करने के लिए अनुमति देगा बनाने है एक HistoryController
। हम setupController
विधि बनाकर ऐसा कर सकते हैं जो हर बार जब आप मार्ग में जाते हैं तो उसे लागू किया जाता है।
App.HistoryMixin = Ember.Mixin.create({
setupController: function() {
this.controllerFor('history').pushObject(this.get('routeName'));
}
});
हम HistoryController
में मार्ग को दबा रहे हैं।
इतिहास नियंत्रक
जब से हम वर्तमान में एक गैर-मौजूद HistoryController
में routeName
धक्का रहे हैं, हम आगे जाना है और जो बना है, जो पूरी तरह से कुछ खास नहीं है की आवश्यकता होगी।
App.HistoryController = Ember.ArrayController.extend();
सूचकांक नियंत्रक
HistoryController
भंडार के बाद से मार्गों हम में नेविगेट किया की सूची है, हम इसे इस तरह IndexController
के रूप में अन्य नियंत्रकों, पर सुलभ की आवश्यकता होगी, इसलिए हम needs
इस्तेमाल करेंगे यह निर्दिष्ट करने के लिए कि कौन सा नियंत्रक इसे सुलभ होना चाहिए।
App.ApplicationController = Ember.Controller.extend({
needs: ['history']
});
लागू Mixin
अब हम सब कुछ हम मार्गों में से एक ट्रैक रखने के लिए की जरूरत है, और इसलिए हम भी निर्दिष्ट करते हैं कि हमारे मार्गों इस mixin को लागू करने की जरूरत है।
App.CatRoute = Ember.Route.extend(App.HistoryMixin);
खाका
इतना ही नहीं बल्कि, अब है कि हम एक HistoryController
है जो हमारे IndexController
उपयोग कर सकते हैं, और mixin HistoryController
में प्रत्येक पहुँचा मार्ग धक्का, हम उत्पादन के लिए हमारे आवेदन दृश्य का उपयोग कर सकते हैं मार्गों की एक सूची, और अंतिम मार्ग निर्दिष्ट करें। बेशक आपके मामले में आपको अंतिम मार्ग की आवश्यकता होगी, लेकिन मुझे सबकुछ करने में कोई समझ नहीं है!
<h1>Routes History ({{controllers.history.length}})</h1>
<ul>
<li>Last Route: {{controllers.history.lastObject}}</li>
{{#each controllers.history}}
<li>{{this}}</li>
{{/each}}
</ul>
मुझे आशा है कि यह आपको सीधे और संकीर्ण पर ले जाएगा।
http: // stackoverflow के संभावित डुप्लिकेट।कॉम/प्रश्न/14831668/मार्ग-मैं-आया-से-या-पिछले मार्ग –
मैं भी इस मुद्दे पर काम कर रहा हूं। बाद में एमवीसी संस्करण में यह अच्छा होगा अगर ऐसा कुछ था: Request.RawUrl.PreviousRoute – JoshYates1980
बस 'history.back() 'करें। इस तरह एम्बर को काम करने के लिए डिज़ाइन किया गया है। अपने इतिहास को बनाए रखने के लिए मशीनरी का पूरा समूह बनाने की कोई जरूरत नहीं है। ब्राउज़र पहले से ही अपना रखता है। –