【问题标题】:Angular - Redirect to a Route from JavaScriptAngular - 从 JavaScript 重定向到路由
【发布时间】:2014-07-01 17:43:06
【问题描述】:

如何正确地将用户从 JavaScript 重定向到 Angular 中的路由?

我所做的大部分重定向只是通过单击链接,效果很好。

<a href="#main">Main</a>

但是,如果我这样做:

<button class="btn btn-default" ng-click="performLogin()">Login</button>

$scope.performExternalLogin = function () {
    DoSomeAuthenticationStuff();
    window.location.href = "/#main";
}

这第一次有效,但是当用户第二次这样做时,我从 Angular 得到一个异常。 我怀疑有更好的方法可以重定向到路线,但我的谷歌搜索技能对我来说并没有发挥作用。 如有任何帮助,我将不胜感激。

这是一个例外: http://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.min.js 中第 112 行第 381 列未处理的异常

0x800a139e - JavaScript 运行时错误:[$rootScope:infdig] http://errors.angularjs.org/1.2.18/$rootScope/infdig?p0=10&p1=%5B%5B%22fn

【问题讨论】:

    标签: javascript angularjs angular-routing


    【解决方案1】:

    在 Angular 中,您应该使用 $location 服务与窗口的位置进行交互:

    $scope.performExternalLogin = function () {
        DoSomeAuthenticationStuff();
        $location.path('/main');   // Will redirect to `#/main`
    }
    

    【讨论】:

      猜你喜欢
      • 2017-08-10
      • 1970-01-01
      • 2018-04-18
      • 2018-12-27
      • 1970-01-01
      • 2018-02-14
      • 2015-11-24
      • 2018-10-22
      • 1970-01-01
      相关资源
      最近更新 更多