2014-02-18 128 views
3

我試圖調用/auth/logout URL會被刪除後重定向:角JS - 呼叫路由,而不視圖

app.config(['$routeProvider',function($routeProvider) { 
    $routeProvider 
    .when('/auth/logout',{ 
     controller:'AuthLogout' 
     //templateUrl: not needed 

    }) 
}) 
.controller('AuthLogout', ['$window','$location', function ($window,$location) { 
    $window.localStorage.removeItem('user_username'); 
    $window.localStorage.removeItem('user_id'); 
    $window.localStorage.removeItem('user_session_token'); 
    $location.path('/'); 
}]); 

我其實並不需要AuthLogout控制器的視圖,但如果我不這麼做在routeProvider中指定templateUrl我無法得到此工作,而如果我指定templateUrl它的作品。

如何在不需要加載視圖的情況下調用url/controller?

+0

嘗試模板警報:「」有點棘手,但它應該工作^^ – Whisher

+0

我得到一個無限循環和瀏覽器崩潰與此:O – sbaaaang

+0

這是奇怪的,當你可以使用塊或模板或templateUrl,所以無限循環,我認爲它不相關。 – Whisher

回答

1

使用redirectTo

app.config(['$routeProvider',function($routeProvider) { 
    $routeProvider 
    .when('/auth/logout',{ 
     redirectTo:'/' 

    }) 
}); 

希望這會爲你工作:)

+0

嘗試它不確定它有助於我需要運行AthLogout控制器,然後重定向... – sbaaaang

5

您可以使用一個決心處理器根據崗位https://github.com/angular/angular.js/issues/1838

結帳這個簡單的例子,並注意解決警報語句。

http://jsfiddle.net/Wk7WD/34/

.when('/detail/:id/', { 
    resolve: { 
     load: function ($route, dataService) { 
      alert("hello"); 
      //Your statements instead of all this which I found in an example 
      return dataService.load($route.current.params.id); 
     } 
    } 
}) 

相反,你可以有你自己的聲明