0
在我的角度應用中,當用戶訪問「home」狀態(我正在使用ui-router)時,他得到一個歡迎消息。登錄後刷新狀態,以顯示取決於用戶角色的內容Angular JS&ui-router
按下登錄按鈕時,會出現覆蓋圖,用戶可以進行身份驗證。
成功驗證後,我想要做一些API調用並在模板上顯示內容。
所有這一切都在代碼中,如下所示:
.config(['$stateProvider', function($stateProvider) {
$stateProvider.state('home', {
url: "/",
templateUrl: "app/sections/home/homeTpl.html",
controller: 'HomeCtrl'
});
}])
.controller('HomeCtrl', ['$scope', 'Session', 'MoviesService', function ($scope, Session, MoviesService) {
if (Session.getUserRole() === 'USER') {
// Add a movie.
$scope.newMovie = {
name: 'I am the new movie'
};
MoviesService.save($scope.newMovie);
}
}])
當用戶進行身份驗證,控制器檢查的用戶角色,如果他是一個「用戶」做的東西....
現在,爲了讓一切工作,我需要的角度UI路由器刷新狀態,在登錄後:
$state.transitionTo($state.current, {}, {
reload: true,
inherit: false,
notify: true
});
雖然它的作品,我不知道這是去有關最佳實踐的方式.. 。
任何想法?
我看到Mathieu,所以你相信邏輯是好的? – 2014-10-22 12:30:46
是的,因爲你需要刷新你的控制器,因爲在你的上下文中你現在被記錄 – 2014-10-22 12:31:22
另一種方法是在視圖中的每個組件設置手錶 - 但它看起來資源昂貴 - 我可以觀看用戶角色的變化 – 2014-10-22 12:31:54