0
我有一個被加載的,像這樣的應用程序:如何使AngularJS控制器取決於通過ajax加載到rootScope上的值?
app.js:
angular.module('App', []).run(['$rootScope', '$q', 'SessionManager', 'EndpointService',
function ($rootScope, $q, SessionManager, EndpointService) {
$rootScope.username = SessionManager.getUsername();
if (!$rootScope.username) {
EndpointService.getUser()
.success(function (data) {
data = angular.fromJson(data.data);
SessionManager.setUsername(data['username']);
$rootScope.username = SessionManager.getUsername();
});
}
}]);
然後,在不同的控制器我想要基於用戶是否登錄或不加載的模板(即如果用戶名設置):
DataController.js:
function DataController($scope, $state, $stateParams, $http, $log, $location, $rootScope, $q) {
if($rootScope.username) {
var template = 'static/partials/auth_table.html';
} else {
var template = 'static/partials/login.html';
}
}
我怎樣才能讓DataController類依賴於用戶名值異步LO在$ rootScope上?
我想過使用承諾,但我不知道如何將該狀態傳遞給我的DataController。
謝謝!
阿賈克斯後調用廣播$ rootscope的值並在你的控制器中使用$ scope。$ on監聽它 – mohamedrias 2015-03-25 04:51:13