javascript - Angular - 从 JavaScript 重定向到路由

标签 javascript angularjs angular-routing

我如何正确地将用户从 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/

相关文章:

angular - 如何在 Angular 2 中跟踪路由?

javascript - 使用 jQuery 从表中删除行

javascript - jquery validate - 根据条件切换字段集(带有嵌套的必填字段)

javascript - 正则表达式替换任何不在单词之前的内容

javascript - 如何在指令模板中使用标签输入?

javascript - AngularJS 路由链接在重新加载时不起作用

angular - 如何以angular 5获取上一页URL

javascript - 使用 Awesomium 在 ASP.NET Web 表单回发后自动下载

css - angularjs 绑定(bind) nbsp 实体在 IE 中不起作用

javascript - 在文本框字段前面为带有背景的货币符号添加前缀