2014-07-01 91 views
3

如何正確地將用戶重定向到Angular in JavaScript中的路線?Angular - 從JavaScript重定向到路線

我正在做的大部分重定向僅僅是點擊一個鏈接,這很好。

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

但是,如果我做這樣的事情:

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

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

這工作的第一次,但是當用戶做了第二遍,我從角得到一個異常。 我懷疑有更好的方法重定向到路線,但我的谷歌搜索技能還沒有完成。 我會很感激任何幫助。

這裏的不同之處:線112 未處理的異常,柱381在http://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.min.js

0x800a139e - JavaScript運行錯誤:[$ rootScope:infdig] http://errors.angularjs.org/1.2.18/ $ rootScope/infdig P0 = 10 & P1 =%5B% 5B%22fn

回答

4

在角你應該使用$location服務與窗口的位置interract:

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

虛擬啤酒給你,我的朋友。這工作很好。:) –