我如何正确地将用户从 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 得到了一个异常。 我怀疑有更好的方法可以重定向到路线,但我的谷歌搜索技能对我来说还不够。 如果有任何帮助,我将不胜感激。
异常(exception)情况: 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
最佳答案
在 Angular 中你应该使用 $location
与 windows 位置交互的服务:
$scope.performExternalLogin = function () {
DoSomeAuthenticationStuff();
$location.path('/main'); // Will redirect to `#/main`
}
关于javascript - Angular - 从 JavaScript 重定向到路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24516320/