2016-12-20 2 views
0

Ich habe eine Schaltfläche, die sowohl eine Funktion auslöst und umleitet. Ist es möglich, die Weiterleitung abzubrechen, bis die Funktion zurückkehrt?Anhalten Umleitung bis Funktion zurückkehrt (Angular/HTML)

Der Grund, warum ich dies tun soll, ist, weil ich eine zweite Funktion auf der Zielseite habe, die Variablen verwendet, die von der ersten Funktion als Parameter festgelegt wurden. Jetzt erfolgt die Umleitung, bevor die erste Funktion Zeit hat, die Variablen als zu setzen Parameter in der zweiten Funktion.

Meine Taste

<button class="btn btn-sm btn-primary" ng-click="selectCharacter(character)" ui-sref="apply" ng-show="application"> 
     Select 
</button> 

html-tag zweite Funktion mit ng-init aufrufen, indem durch die erste Funktion eingestellten Parameter

<form ng-Submit="getCharacterInfo(apply)" ng-init="getCharInfo(current_user, current_user_realm)"> 
+0

Warum zwei getrennte Funktionen aufrufen? Zumindest könntest du den Button klicken, um beides zu tun und dann von dort weiterleiten. Ich verwende nie ng-submit – jbrown

+0

entweder Sie verwenden eine Funktion, oder verwenden Sie Versprechen ... oder eine Kombination aus beidem. Sie sollten etwas Code zeigen – Ladmerc

Antwort

1

Sie könnten versuchen, das ui-sref Attribut aus der Schaltfläche Entfernen , so dass es nicht automatisch umgeleitet wird. Wenn die selectCharacter Funktion getan ausführt, was es jetzt ausführt, kann es programmatisch Zustände ändern:

Zuerst entfernen ui-sref:

<button class="btn btn-sm btn-primary" ng-click="selectCharacter(character)" ng-show="application">Select</button> 

Dann Update Controller programmatisch umleiten:

$scope.selectCharacter = function(char) { 
    // do whatever needs to be done here 

    // redirect to the 'apply' state programmatically. Don't forget to inject the $state service 
    $state.go('apply'); 
}; 
+0

Vielen Dank, es funktioniert wie ein Charme! – Flux

Verwandte Themen