JavaScript中的State.go - 等到它完成

时间:2016-11-23 10:03:27

标签: javascript angularjs

我已添加如下的JS代码 -

    exports.openTab = function(location)
    {
      var $state = app.getInjector().get( '$state' );
      var opts = {};
      var toParams = {};
      toParams.id = "myPage";

      $state.go(location, toParams, opts);

exports.executeUsecase();        

    };

这里state.go工作正常并打开位置,但问题是它在executeUsecase()下面立即执行,其中的代码依赖于打开的位置。我可以确保我的位置是否正常打开然后只调用执行方法?我听说过“stateChangeSuccess”,但不确定如何使用它来打开特定网址?

1 个答案:

答案 0 :(得分:-1)

以下是“stateChangeSuccess”的使用示例。 每次状态转换后都会触发此事件。

app.run(function($rootScope) { 
    $rootScope.$on("$stateChangeSuccess", function(event, toState, toParams, fromState, fromParams) {
        if (fromState.name == "") { 
           //Do something
       }

    //Or

        if (toState.name == "") { 
           //Do something
       }
   });
});

根据您的要求对“fromState.name”和“toState.name”进行必要的检查。