मेरे पास एक AngularJS एप्लिकेशन है जो नए, राज्य-आधारित ui-router का उपयोग करता है। मेरे पास मेरे आवेदन में तीन अलग-अलग विचार हैं, जहां एक शीर्ष-स्तरीय विचार है, और अन्य दो नेस्टेड हैं।कोणीय राउटर में नेस्टेड राज्यों के साथ वापस बटन
संरचना मूल रूप से इस प्रकार है:
/ => Top-level view
/foo => Abstract view, loads a view that contains a ui-view placeholder
/foo/bar => View for the placeholder
/foo/baz => View for the placeholder
रूटर निम्नलिखित के रूप में स्थापित किया गया है:
app.config(['$urlRouterProvider', '$stateProvider', function ($urlRouterProvider, $stateProvider) {
'use strict';
$urlRouterProvider
.when('/bar', '/foo/bar')
.otherwise('/');
$stateProvider
.state('home', {
url: '/',
views: {
'': {
controller: 'homeController',
templateUrl: '/home/homeLayout.html',
},
'[email protected]': {
templateUrl: '/home/firstHomeView.html'
},
'[email protected]': {
templateUrl: '/homme/secondHomeView.html'
}
}
})
.state('foo', {
abstract: true,
templateUrl: '/foo/fooLayout.html',
controller: 'fooController'
})
.state('foo.bar', {
url: '/foo/bar',
templateUrl: '/foo/barView.html',
controller: 'barController'
})
.state('foo.baz', {
url: '/foo/baz',
templateUrl: '/foo/bazView.html',
controller: 'bazController'
});
समस्या है, कि मूल रूप से सब कुछ के रूप में जब आप के आसपास क्लिक करें या मैन्युअल रूप से टाइप की उम्मीद काम करता है यूआरएल में, लेकिन यह ब्राउज़र के बैक/फॉरवर्ड बटन का उपयोग करते समय काम नहीं करता है।
उदा।, क्या आप /foo
पर जाते हैं, तो आपको उम्मीद के अनुसार /foo/bar
पर ले जाया जाता है। जब आप /foo/baz
पर जाने के लिए एक लिंक पर क्लिक करते हैं, तो सब कुछ ठीक है। फिर एक लिंक पर क्लिक करें जो आपको /
पर ले जाता है, और सब कुछ ठीक है।
यदि आप अब बैक बटन दबाते हैं, तो आपको /foo/baz
(जो सही है) पर वापस ले जाया जाता है, लेकिन केवल /foo/fooLayout.html
व्यू प्रस्तुत किया जाता है, न कि इसके उप-दृश्य /foo/bazView.html
। अजीब बात यह है कि यदि आप फिर से बैक बटन दबाते हैं, तो आपको /foo/bar
पर ले जाया जाता है और यह इसके सबव्यू सहित सही ढंग से प्रस्तुत करता है! ऐसा लगता है जैसे बैक बटन का उपयोग करते समय नेस्टेड विचारों को पहचाना नहीं गया था, कम से कम, यदि आप एक ही समय में एक अमूर्त दृश्य दर्ज करते हैं।
$locationProvider.html5Mode
सक्षम नहीं है, लेकिन इसे सक्षम करने से कोई फर्क नहीं पड़ता है।
मैं AngularJS 1.0.5 और UI-राउटर 0.0.1-2013-03-20 का उपयोग कर रहा हूं।
कोई भी विचार जो इस मुद्दे का कारण बन सकता है, और मैं इसे कैसे हल कर सकता हूं?
खुश है कि आपको अगले दिन समाधान मिला .. :) – Vignesh