programing

Angular JS를 사용하여 다른 모듈 구성에 상수 주입

i4 2023. 4. 6. 20:47
반응형

Angular JS를 사용하여 다른 모듈 구성에 상수 주입

어플리케이션 전체에서 베이스 패스 등의 변수를 공유하고 싶습니다.모듈 설정 중에 이들 변수에 액세스할 수 있어야 합니다.내 의견은, 그것에 상수나 공급자를 사용할 수 있다는 것이었다.

모듈이 여러 개 있고 각 모듈마다 자체 라우팅 구성이 있습니다.이러한 라우팅 설정에서는, 예를 들면 몇개의 설정에 액세스 하고 싶다고 생각하고 있습니다.

이것은 app-module-configuration에서는 동작하지만 다른 모듈 구성에서는 동작하지 않습니다(다른 모듈의 컨트롤러에서는 동작한다).항상 "Unknown provider: info from myApp.orders"라고 표시됩니다.

var myApp = angular.module('myApp', ['myApp.orders']);

myApp.constant('info', {
  version : '1.0'
});

myApp.config(function(info) {
  console.log('app config: ' + info.version);
});

myApp.controller('MyController', function (info) {
  console.log('controller: ' + info.version);
});

var orders = angular.module('myApp.orders', []);

// Remove comments to see it fail.

//orders.config(function(info) {
//  console.log('orders config: ' + info.version);
//});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

  <div ng-app="myApp" class="container" ng-controller="MyController">        
  </div>

방금 제가 좀 놓친 것 같은데, 좋은 생각 있으세요?

당신의.info상수가 정의되어 있습니다.myApp모듈.질문을 올바르게 이해했다면 다른 모듈(예: myApp.orders 모듈)의 상수를 사용하려고 합니다.그렇다면 myApp.order에 myApp을 삽입해야 하는데, 그 반대의 작업을 원하는 것 같습니다.한 가지 해결책은 상수를 독립 실행형 모듈로 분리하여 필요에 따라 종속 모듈로 주입하는 것입니다.

angular.module('constants', []) 
  .constant(...);

angular.module('myApp', ['constants', 'myApp.orders'])
  ...

angular.module('myApp.orders', ['constants'])
  ...

솔루션이 가장 예쁜지 모르겠지만 다른 컴포넌트에서 참조하는 CONFIG의 정의를 index.html에 입력합니다.서버측 코드로 index.html을 생성하여 프로그램 시작 시 값을 설정합니다.즉, 저는 index.cshtml을 사용하지만 index.php나 다른 테크놀로지처럼 쉽게 사용할 수 있습니다.my index.html은 다음과 같습니다.

....

 <script type="text/javascript">
    var usingMockDataGlobal = true;
 </script>

....


<script type="text/javascript">

        (function () {
            'use strict';

            var configData = {


                codeCampType: 'angu',

                loggedInUsername: 'peter',
                mockData: usingMockDataGlobal
            };
            angular.module('baseApp').constant('CONFIG', configData);


        })();
    </script>

언급URL : https://stackoverflow.com/questions/28416054/inject-constant-to-other-modules-config-using-angular-js

반응형