6

मेरे पास एक 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 का उपयोग कर रहा हूं।

कोई भी विचार जो इस मुद्दे का कारण बन सकता है, और मैं इसे कैसे हल कर सकता हूं?

उत्तर

4

मुझे त्रुटि मिली: दृश्य में fooLayout.html मैं ui-view के बजाय ng-view का उपयोग कर रहा था। एक बार मैंने इसे बदल दिया, सबकुछ ठीक था :-)

+1

खुश है कि आपको अगले दिन समाधान मिला .. :) – Vignesh

संबंधित मुद्दे