2016-03-25 23 views
0

Bir global hizmet değişkeninde bir yanıt değişkeni depolamaya çalışıyorum. Bu benim service geçerli:AngularJs global hizmeti

(function() { 
    angular.module('employeeApp') 
     .service('constants',constants); 

    function constants() { 
     this.url = 'http://domain.dev/api/v1/'; 
      this.role = '', 
      this.companyid = '', 
      this.name = '' 
    } 
})(); 

loginFactory: Ben homecontroller içinde şirket kimliği erişmeye çalıştığınızda

factory.login = function(email,password) 
     { 
      var vm = this; 
      vm.companyid = constants.companyid; 

      data = {"email": email, "password": password}; 
      requestFactory.post(GLOBALS.url + 'login', data) 
       .then(function (response) { 
        vm.role = response.data.result.Employee.Role; 
        vm.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!'); 
       }); 
     } 

boş. Neyi yanlış yapıyorum. Şu an saatlerce bakıyorum ama bir çözüm bulamıyor!

+0

bakınız. Sorun bu olabilir mi? – kubuntu

+0

@kubuntu Fabrikamda bir şey ayarlamaya çalışıyorum. – Jamie

+0

Virgülleri sabitler() 'de noktalı virgül olarak değiştirin. Shoulld çalışması – kubuntu

cevap

0

Sabitler hizmetini loginFactory'nize eklemeniz gerekir.
https://docs.angularjs.org/guide/di

.factory('loginFactory', ['constants', function(constants) { 

Ayrıca,

+0

Bunu yaptım: 'function authenticationFactory ($ cookieStore, $ tanımlama bilgisi, requestFactory, $ location, GLOBALS, sabitler) \t {' ​​ – Jamie

0

Hey sen fabrikayı size Bunun günümüze

angular.module('employeeApp') 
    .factory('loginFactory', ['constants', function(constants, $scope) { 

$scope.login = function(email,password) 
    { 
     var vm = this; 
     vm.companyid = constants.companyid; 

     data = {"email": email, "password": password}; 
     requestFactory.post(GLOBALS.url + 'login', data) 
      .then(function (response) { 
       vm.role = response.data.result.Employee.Role; 
       vm.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!'); 
      }); 
    } 
    } 
+0

Bunu enjekte ettim. ! – Jamie

0

bir bağımlılık olarak hizmetinizi enjekte etmek gerek senin sabitler hizmetinde bir nesne dönen değiliz uygulamanızın diğer bölümlerinde sorun olmadıkça çalışma. constant işlevinde parantez yerine yarı-kodonlara ve modül bildirimlerine eklenen köşeli parantezlere dikkat edin.

(function() { 
    angular.module('employeeApp', []) 
     .service('constants',constants); 

    function constants() { 
     this.url = 'http://domain.dev/api/v1/'; 
     this.role = ''; 
     this.companyid = ''; 
     this.name = ''; 
    } 
})(); 

Sen hizmetinde bir return ifadesi yok Fiddle