2017-10-30 6 views
-1

Ich habe einen Geräte-Service und eine Gerätesteuerung. Zuerst, wann immer der Controller aufgerufen wird, rufe ich die Setter-Methode auf, um einen booleschen Wert zu setzen. Ich möchte diesen Wert ändern, wenn die Abmeldefunktion aufgerufen wird, die sich in einem anderen Dienst befindet. My Device ServiceÄndern Sie den Wert der Variablen in einem Dienst, wenn die Abmeldung aufgerufen wird

define([], function() { 

    'use strict'; 

    var DeviceService = [ 
     "AuthService", 
     function (AuthService) { 
      var Device_Create = false; 
      return { 

       setUserCreatePermission :function() { 
        if(AuthService.checkForPermission('Device_Create')){ 
         Device_Create = true; 
        } 
       }, 
       getUserCreatePermission : function() { 
        return Device_Create 
       } 
      } 
     }]; 

    return DeviceService; 

}) 

hat My Device-Controller eine init-Methode, die die Setter-Methode in Gerätedienst aufruft. Ich habe eine Bereichsvariable festgelegt. Wenn es gesetzt ist, wird es die Methode sonst nicht aufrufen.

define([], function() { 
    'use strict'; 

    var DeviceListCtrl = ["$rootScope", "$scope", "DeviceService", 
     function ($rootScope, $scope, DeviceService) { 

      //variables 

      $scope.deviceList_init = true; 
      $scope.Device_Create = false; 

      init(); 

      if(DeviceService.getDeviceCreatePermission()){ 
       $scope.Device_Create = true; 
      } 

      function init() { 
       if($scope.deviceList_init){ 
        DeviceService.setDeviceCreatePermission(); 
       } 
       $scope.deviceList_init = false; 

      } 

     }] 


    return DeviceListCtrl; 
}); 

Kann mir jemand helfen? TIA. Ich bin neu zu diesem

Antwort

0

Ich bin mir nicht sicher, ob ich Ihr Problem verstanden habe, aber es scheint, dass Sie versuchen, zwei verschiedene Variablen zu steuern, um das gleiche zu tun - eine im Controller und andere im Dienst.

Wenn Sie eine Variable über verschiedene Controller hinweg haben möchten, sollte sie in Services/Factories behandelt werden.

Wenn Sie anderen Controllern mitteilen möchten, dass sich eine Variable irgendwo geändert hat, können Sie $ rootScope. $ Broadcast oder $ scope. $ Broadcast abhängig davon verwenden, ob sie sich im Bereich befinden oder nicht.

Verwandte Themen