停止重定向直到函数返回(Angular / HTML)

时间:2016-12-20 20:45:32

标签: javascript html angularjs

我有一个按钮,可以激活一个功能并重定向。是否可以在函数返回之前停止重定向?

我想这样做的原因是因为我在目标页面上有第二个函数,它使用第一个函数设置的变量作为参数,现在重定向发生在第一个函数有时间设置用作参数的变量之前在第二个功能。

我的按钮

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

html-tag使用ng-init调用第二个函数,使用第一个函数设置的参数

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

1 个答案:

答案 0 :(得分:1)

您可以尝试从按钮中删除ui-sref属性,因此它不会重定向&#34;自动。当selectCharacter函数完成执行它现在执行的操作时,它可以以编程方式更改状态:

首先,删除ui-sref:

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

然后,更新控制器以编程方式重定向:

$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');
};