programing

Angular에서 "config"에 "$window" 객체를 "injection"하는 방법JS

powerit 2023. 3. 19. 19:32
반응형

Angular에서 "config"에 "$window" 객체를 "injection"하는 방법JS

주사하려고 합니다.$window에 이의를 제기하다configAngularJS의 메서드입니다만, 에러가 계속 발생하고 있습니다.

올바른 방법은 무엇입니까?

제 코드는 다음과 같습니다.

angular.module('myApp', ['$window']) //is this wrong?

  .config(function ($window) { //this is not the way?
      console.log($window); //console.log fails //error
  })

  .controller("main", function($scope) {
    $scope.index = 0;
    $scope.num = number[$scope.index];

   $scope.increase = function () {
     $scope.index += 1;
     $scope.num = number[$scope.index];
   }
})

라이브 데모

주입할 수 없다$window서비스가 아직 초기화되지 않았기 때문에 서비스가 Configuration에 전달됩니다.그러나 공급자를 주입하여 인스턴스를 얻을 수 있습니다.고객님의 경우:

angular.module('myApp', [])

 .config(function ($windowProvider) {
   var $window = $windowProvider.$get();
   console.log($window);
 })

config 블록에는 상수공급자만 삽입할 수 있습니다. $window서비스입니다.& 설정 블록 실행 중에는 사용할 수 없거나 설정되지 않을 수 있습니다.각도가 너무 높아 사용할 수 없습니다.

블록을 사용할 수 있습니다.이것은 각진 앱의 주요 방법 역할을 합니다.이는 응용 프로그램이 인스턴스화되기 직전에 실행됩니다.실행 블록이 실행될 때까지 모든 서비스 구성이 완료되고 주입 준비가 완료됩니다.이 때문에,$window아래와 같이

angular.module('myApp', ['$window']) 

  .run(function ($window) { //use run rather than config
      console.log($window); 
  })

  .controller("main", function($scope) {
    $scope.index = 0;
    $scope.num = number[$scope.index];

   $scope.increase = function () {
     $scope.index += 1;
     $scope.num = number[$scope.index];
   }
  })

언급URL : https://stackoverflow.com/questions/30961949/how-to-inject-window-object-to-the-config-in-angularjs

반응형