2016-08-30 3 views
0

Ich habe eine Anwendung, die UI-Router verwendet, um alle Zustandsübergänge zu behandeln. Den meisten Staaten ist kein Attribut 'url' zugeordnet, so dass sie nur über Steuerelemente innerhalb der Anwendung aufgerufen werden können. Einige davon müssen jedoch von außerhalb der Anwendung aufgerufen werden können und über ein Attribut 'url' verfügen.Update URL beim Navigieren zu Status ohne eine URL in UI-Router

Hier ist ein Beispielcode ähnlich wie mein Setup:

$stateProvider 
    .state('home',{ 
     url: '/', 
     templateUrl : 'app/home.html', 
     controller : homeCtrl, 
     controllerAs : 'vm', 
    }) 
    .state('example1',{ 
     templateUrl : 'app/example1.html', 
     controller : example1Ctrl, 
     controllerAs: 'vm', 

    })   
    .state('example2',{ 
     templateUrl : 'app/example2.html', 
     controller : example2Ctrl, 
     controllerAs: 'vm', 
    }) 
    .state('example3', { 
     url : '/example3', 
     templateUrl : 'app/example3.html', 
     controller : example3Ctrl, 
     controllerAs : 'vm', 
    }).... 

den Code-Snippet abgehend, ich brauche/example3 von außerhalb der Anwendung zugänglich zu sein, aber wenn der Benutzer navigiert zu jedem anderen Staat, die URL im Browser bleibt "sample.com/#/example3".

Wie kann ich die URL auf "sample.com/#/" zurücksetzen, wenn ich in einen Zustand ohne Attribut 'url' umschalte?

Antwort

1

Sie müssten diejenigen, die ein Kind von zu Hause Weg machen, wenn Sie sie wollen „/“ in diesem Beispiel

Die ‚@ Ansicht‘ zurückzukehren ändert sich die oberste <ui-view></ui-view>

$stateProvider 
.state('home',{ 
    url: '/', 
    templateUrl : 'app/home.html', 
    controller : homeCtrl, 
    controllerAs : 'vm', 
}) 
.state('home.example1',{ 
    views: { 
     '@': { 
     templateUrl: 'app/example1.html', 
     controller: 'example1Ctrl as vm', 
     }, 
    }, 
})   
.state('home.example2',{ 
    views: { 
     '@': { 
     templateUrl: 'app/example2.html', 
     controller: 'example2Ctrl as vm', 
     }, 
    }, 
}) 
.state('example3', { 
    url : '/example3', 
    templateUrl : 'app/example3.html', 
    controller : example3Ctrl, 
    controllerAs : 'vm', 
}) 
+0

perfekt ! Vielen Dank – awade1075

Verwandte Themen