我在一个名为loginCtrl.js的文件中有以下指令,我无法使$ rootScope保存vm.userEmail的值。
app.controller('LoginCtrl', function($timeout, $q, $log, $rootScope /*$auth*/, $location, $mdToast) {
var vm = this;
vm.loginMessage = '';
vm.login = function(){
$auth.login({
$rootScope: vm.userEmail,
password: vm.userPassword
})
}
});
每当这个特定用户连接时,$ rootScope都会帮助我处理这个条件。
if ($rootScope == 'y_y@hotmail.com') {
data = [1,2,3,4]
} else {
data = [5,6,7,8]
}
欢迎任何想法,建议或更正;)
答案 0 :(得分:1)
而不是
$rootScope = someValue;
使用
$rootScope.someValue= someValue;
对于第二部分,您的代码会尝试:
您应该在$rootSchope.someValue
类似的东西:
$rootScope.$watch('$rootScope.someValue', function(newValue) {
if (newValue='y_y@hotmail.com') {
data = [1,2,3,4]
}
});
答案 1 :(得分:1)
$ rootscope就像一个应用程序上下文。因此,您可以向应用程序上下文添加新值。以下是您的工作代码。 app.controller('LoginCtrl',函数($ timeout,$ q,$ log,$ rootScope / $ auth /,$ location,$ mdToast) {
var vm = this;
vm.loginMessage = '';
vm.login = function(){
$auth.login({
$rootScope.userEmail : vm.userEmail,
password: vm.userPassword
})
} });
现在,您可以在应用程序的任何位置使用read $ rootScope.userEmail。
if($ rootScope.userEmail =='y_y@hotmail.com') {
data = [1,2,3,4]
} else {
data = [5,6,7,8]`enter code here`
}