1

Ich arbeite an Web-App, die Ui-Router-Version 0.3.2 und angular 1.5 verwendet. Ich habe ein Problem mit der Zurück-Taste, wenn ich auf die Zurück-Taste klicke, wird die URL auf die entsprechende Status-URL aktualisiert, aber die Seite wird nicht neu geladen/gerendert. Der Controller des neuen Status (aktualisierte URL) wird nicht ausgeführt. Es folgt mein Zustand Configui Router zurück Button Problem

$stateProvider 
.state('home', { 
    url: '/', 
    reloadOnSearch: false, 
    templateUrl: 'homePage.html', 
    controller:'homeController' 
}) 
.state('home.overView', { 
    url:'overView', 
    reloadOnSearch: false, 
    views: { 
    ovSB: { 
     templateUrl: 'searchParameterBarTemplate.html', 
     controller: 'searchParameterBarController' 
    } 
    } 
}) 
.state('home.overView.result', { 
    url:'/:docType?abc&xyz&type&user&temp1&temp2', 
    abstract: true, 
    reloadOnSearch: false, 
    templateUrl: 'resultViewTemplate.html', 
    controller : 'resultPanelController' 
}) 
.state('home.overView.result.dashboard', { 
    url:'', 
    reloadOnSearch: false, 
    views: { 
    'chart': { 
     templateUrl: 'chart-template.html', 
     controller: 'chart-Controller' 
    }, 
    'oVGrid': { 
     templateUrl: 'ov-grid-template.html', 
     controller: 'ov-grid-controller' 
    }, 
    'filterGrid': { 
     templateUrl: 'filter-stats-template.html', 
     controller: 'filter-stats-controller' 
    } 
    } 
}) 
.state('home.delta',{ 
    reloadOnSearch: false, 
    url:'Delta', 

    views:{ 
    pcSB:{ 
     templateUrl: 'search-parameterbar-delta-template.html', 
     controller : 'search-parameterBar-delta-controller' 
    } 
    } 
}) 
.state('home.delta.result',{ 
    url:'/:docType?xyz_1&abc_1&xyz_2&abc_2', 

    reloadOnSearch: false, 
    templateUrl: 'delta-template.html', 
    controller : 'delta-controller' 
}) 
.state('home.details', { 
    url: 'details', 

    views: { 
    detailsSB: { 
     templateUrl: 'search-paramBar-details-template.html', 
     controller: 'search-paramBar-details-controller' 
    } 
    } 
}) 
.state('home.details.result', { 
    url: '/:documentType?abc&xyz&user&temp1&temp2', 
    abstract: true, 
    templateUrl: 'details-view-template.html', 
    controller: 'details-view-controller' 
}) 
.state('home.details.result.dashboard',{ 
    url:'', 
    views:{ 
    perGraph : { 
     controller :'per-graph-controller', 
     templateUrl: 'per-graph-template.html' 
    }, 
    detailsGrid: { 
     controller: 'details-grid-controller', 
     templateUrl: 'details-grid-controller-template.html' 
    } 
    } 
}); 

So zum Beispiel, wenn ich von home.overview.result.dashboard navigieren (url ->localhost: 12345/Übersicht/Doctype abc & xyz & Benutzer & temp1 & temp2?) Zustand in home.details.result.dashboard Zustand mit url localhost: 12345/details/doctype abc & xyz & Benutzer & temp1 & temp2 und schlug zurück Taste, die URL-Updates zu localhost: 12345/Übersicht/Doctype abc & xyz & Benutzer & temp1 & temp2 aber es ist nicht neu geladen hat/die Seite macht.

Ich glaube, ich kann diese solution verwenden und das Reload auslösen, aber ich bin auf der Suche nach einer besseren Lösung als diese, die auf ui Router hält. Gibt es etwas, das ich vermisse mit State Config/falsch machen? Jede diesbezügliche Hilfe wäre sehr willkommen. Danke

+0

versuchen, reloadOnSearch von Ihrem "Zuhause" Zustand – Ero

+0

versucht, dass, löste das Problem nicht –

Antwort

1

es wird $ stateChangeStart Ereignis auslösen. Verwenden Sie die Standort-Richtlinie, um es zu routen. Bitte beachten Sie das folgende Codefragment

Dies kann Ihr Problem lösen. aber es ist nicht die perfekte Lösung