【发布时间】:2018-09-21 16:55:32
【问题描述】:
我刚开始使用 angularJS,我有一个问题: 如何访问在 templateUrl 函数中使用 $rootScope 定义的变量? 这是我的代码:
myApp.config(['$routeProvider',
function($routeProvider, $rootScope) {
$routeProvider.
when( '/', {
templateUrl: 'partials/login.html',
controller: 'loginCtrl'
}).
when( '/home', {
templateUrl: function($rootScope){
console.log($rootScope.utilisateur.user.role_id);
if ($rootScope.utilisateur.user.role_id==2){
return 'partials/home.html';
}
else return 'partials/login.html';
},
controller: 'homeCtrl'
}).
otherwise({redirectTo:'/'});
}]);
它告诉我 utilisateur 是未定义的。
我在索引控制器中定义了它:
$rootScope.utilisateur = null;
$rootScope.rapports = null;
然后在LoginCtrl:
var user = Authentification.login(email,password);
user.success(function(response){
$rootScope.utilisateur = response;
console.log($rootScope.utilisateur);
$location.path('/home');
});
【问题讨论】:
-
显示您在 $rootScope 上声明了 utilisateur 的代码
-
看起来 $rootScope 正在工作,但尚未定义 utilisateur。