Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的State.go-等待它完成_Javascript_Angularjs - Fatal编程技术网

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

JavaScript中的State.go-等待它完成,javascript,angularjs,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.e

我已经添加了一个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下面立即执行,其中的代码依赖于打开的位置。我是否可以确保我的位置打开良好,然后只调用execute方法?我听说过stateChangeSuccess,但不确定如何使用它打开特定的url位置?

下面是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进行必要的检查。

问题与此相同吗?看看这个…..我之前确实读过这个线程,.thn在state.go之后立即运行,在我的用例中,我想等到它成功。StateChangeSucture似乎对我有效,但不确定如何使用它。检查$state.go是否支持回调$state.go返回承诺,因此$state.go.then=>{//do stuff}我不想在每个转换上都做些什么,我只需要在代码启动的state.go转换完成后执行我的方法。