2016-06-20 7 views
2

Das ist mein index.route.js und ich möchte, dass meine Parent-Eigenschaft dynamisch ist, wenn der Benutzer darauf klickt, dann sollte die Bestätigungsaufforderung angezeigt werden, bevor der Status geändert wird.Kann ich ein dynamisches Elternteil in ncyBreadcrumb haben?

.state('user.edit', { 
    url: '/{id}/edit', 
    params: { 
    id: {value: 'new'} 
    }, 
    templateUrl: 'app/user.html', 
    controller: 'EditUserController', 
    controllerAs: 'vm', 
    ncyBreadcrumb: { 
    label: 'Add/Edit User', 
    parent: 'user.list' //(this one i want dynamic) 
    } 
}) 

Bitte helfen Sie mir.

+0

Warum solche seltsame Anforderung? – Vaelyr

+0

Stack Overflow erfüllt unsere Anforderungen. kann also nicht so sagen –

Antwort

1

Sie müssen das $stateChangeStart-Ereignis abhören und verhindern, dass der Benutzer das Ereignis abbricht. In Ihrem Controller:

vm.$on('$stateChangeStart', 
function(event, toState, toParams, fromState, fromParams, options){ 
    console.log(event, toState, toParams, fromState, fromParams, options); // Here you can see what parameters are passed to the event callback function 
    if(!confirm('are you sure?')) { 
     event.preventDefault(); 
    } 
}); 

BTW - vm ist die $scope - nicht sicher, wie Sie es in Ihrem Controller verweisen.

Sie können auch binden Sie es an die $rootScope innerhalb der run() Phase der Anwendung - Auf diese Weise können Zustandsänderungen auf globaler Ebene erfassen kann, und zwar nicht nur innerhalb eines bestimmten sate. Sie werden toState.name verwenden, um zu wissen, in welchem ​​Zustand Sie sich befinden, und fromState.name, um den Namen des Sates zu kennen, den Sie verlassen.

+1

danke irgendwie gibt es mir eine Idee –

Verwandte Themen