私は自分のアプリ全体にグローバルを設定しようとしています。しかし、それは動作していません。ここで私はグローバルを宣言します:AngularJsがグローバルに設定されています
(function() {
angular.module('employeeApp')
.controller('authenticationController', authenticationController)
.constant('GLOBALS', {
url:'http://skindustries.dev/api/v1/',
role:'',
companyid:'',
name:''
});
次に従業員がサインインするときにグローバルを設定します。
function authenticationController(requestFactory,authenticationFactory,GLOBALS,$location,$cookieStore)
{
var vm = this;
vm.login = function() {
data = {"email": vm.email, "password": vm.password};
requestFactory.post(GLOBALS.url + 'login', data)
.then(function (response) {
console.log(response);
GLOBALS.role = response.data.result.Employee.Role;
GLOBALS.companyid = response.data.result.Employee.CompanyId;
authenticationFactory.setToken(response.data.result.Employee.api_token);
$cookieStore.put('employeeid', response.data.result.Employee.EmployeeId);
$location.path('/home');
}, function() {
console.log('Niet ingelogd!');
});
}
}
I console.log(GLOBALS.role)
authenticationController
の結果はsuperadministrator
ある場合。その後、ユーザーは自宅にリダイレクトされます。私のhomeController
に私がconsole.log(GLOBALS.role)
の場合。
(function()
{
angular.module('employeeApp').controller('homeController', homeController);
function homeController(employeeFactory,GLOBALS) {
console.log(GLOBALS.role);
結果はnull
ありますか?
私はここで間違っていますか?
--EDIT--
定数(サービス)
(function() {
angular.module('employeeApp')
.service('constants',constants);
function constants() {
this.url = 'http://skindustries.dev/api/v1/';
this.role = 'oldRole',
this.companyid = '',
this.name = ''
}
})();
ログイン(工場)
factory.login = function(email,password)
{
console.log('login');
data = {"email": email, "password": password};
requestFactory.post(GLOBALS.url + 'login', data)
.then(function (response) {
constants.role = response.data.result.Employee.Role;
constants.companyid = response.data.result.Employee.CompanyId;
factory.setToken(response.data.result.Employee.api_token);
$cookieStore.put('employeeid', response.data.result.Employee.EmployeeId);
$location.path('/home');
}, function() {
console.log('Niet ingelogd!');
});
}
にHomeController
(function()
{
angular.module('employeeApp').controller('homeController', homeController);
function homeController(constants) {
console.log(constants.role);
}
'homeController'が実行される前に角度定数 "GLOBALS"が "before"として登録されているかどうかをチェックしましたか? – nalinc
はい私はそれをチェックしました! – Jamie
私はあなたにauthを扱うこのブログの記事を見てみることをお勧めします:http://www.jvandemo.com/learn-how-to-make-authentication-in-your-angular-applications-simpler-and-more -consistent/ –