2013-02-12 21 views
2

這可能是一個微不足道的事情,但我是一個angularjs新手。 這裏是我的angularjs控制器代碼如何在angularjs中重定向

function MyCtrl1($scope, $location, $rootScope) { 
    $scope.$on('$locationChangeStart', function (event, next, current) { 
    event.preventDefault(); 
    var answer = confirm("Are you sure you want to leave this page?"); 
    if (answer) { 

    } 
    }); 
} 
MyCtrl1.$inject = ['$scope', '$location', '$rootScope']; 

next變量i知道該網址,在確認OK.But如何完成這件事情在angularjs重定向。

回答

7

您不必手動執行此操作。只有取消該事件,如果他們確認:

$scope.$on('$locationChangeStart', function (event, next, current) { 
    if (! confirm("Are you sure you want to leave this page?")) { 
     event.preventDefault(); 
    } 
}); 
+0

工作就像一個魅力:) – iJade 2013-02-12 20:36:37

-4

window.location = 'myURL'

Here's the MDN docs

+2

使用「窗口」對於Angular.js是不好的做法。請始終使用$ window代替。請參閱http://docs.angularjs.org/api/ng.$window – 2014-01-06 13:34:14

6

您可以使用普通的JavaScript在其他的答案 提到的,或者你可以使用提供$位置服務by like angular

$location.path(next) 

O [R

$location.replace(next) 

第一個添加到您的電流通路(主要是部分)

第二個取代(至yahoo.com如google.com)電流路徑