【问题标题】:Killing Previous Route's Controller On Next Route在下一个路由上杀死上一个路由的控制器
【发布时间】:2014-09-16 11:59:51
【问题描述】:

我在我的 Angular 应用程序中遇到问题,如果我到达一个控制器视图,该控制器视图发出 $http.get() 异步调用并在承诺解决之前导航到另一个控制器视图,那么我实际上最终会获得来自一个控制器在完全不同的控制器上执行。

例如,如果第一页执行$http.get(),然后在.success() 函数中调用$window.location = data.goToUrl。然后,如果我打开第一页,并在 .success() 触发之前导航离开,那么当我到达我导航到的完全不同的页面时,当第一页的 .success() 方法最终触发时,我将被导航离开新的页面永远不应该在任何地方正常导航。

当我离开控制器以确保它不会影响下一个视图时,如何取消所有承诺或终止控制器的所有异步功能?或者有没有更好的方法来处理这个问题?

【问题讨论】:

    标签: angularjs asynchronous routes angularjs-scope


    【解决方案1】:

    不,您不能取消已经开始的请求。您应该找到另一种解决问题的方法,例如,您可以使用ng-disable 禁用正在处理路由的按钮,直到您的承诺被拒绝或解决。

    【讨论】:

      猜你喜欢
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多