TypeScript AngularJS将一个角度模块注入另一个角度模块

问题描述 投票:0回答:1

这是我的一个主要角度模块,其上定义了常量。

/// <reference path="../../../thirdparty/angular/angular.d.ts"/>
var FeatureFlagsValues: ng.IModule = angular.module('feature-flags.values', []);
 FeatureFlagsValues.constant('FeatureFlagValues', {});
 FeatureFlagsValues.run(['$q', '$http', 'FeatureFlagValues', function (_q:ng.IQService, _http: ng.IHttpService, FeatureFlagValues: any) {
let deferred = _q.defer();
let uri = "/api/v1/features/user";

_http.get(uri)
    .success(function (data) {
        deferred.resolve(data);
    })
    .error(function (data, status) {
        deferred.reject({data,status});
    });

deferred.promise.then((results: any) => {
    angular.forEach(results.EnabledFlags, function (key) {
        FeatureFlagValues[key] = true;
    });
});
deferred = _q.defer();
uri = '/api/v1/features/user?defaults=true';

_http.get(uri)
    .success(function (data) {
        deferred.resolve(data);
    })
    .error(function (data, status) {
        deferred.reject({ data, status });
    });
deferred.promise.then((defaultResults: any) => {
    angular.forEach(defaultResults.EnabledFlags, function (key) {
        FeatureFlagValues[key] = true;
    });
 });

}]);

这是我的另一个角度模块,我想在其中使用前一个模块中定义的常量,我不知道我该怎么做。我做过研究找不到任何好的例子。

 // <reference path="./FeatureFlags.values.ts"/>
 import {Endpoints as endpoints} from '../../endpointsTsModule';
 import {FeatureFalgs as FF}  from './FeatureFlags.service.SettingStore';

 export module FeatureFlags.service {
 export class FeatureFlagsService {
 static $inject: string[] = ["$q", "$http", "feature-flags.values","FeatureFlagsSettingStore"];
   }
}
angularjs typescript
1个回答
0
投票

如果要使用'FeatureFlagValues'常量,则需要使'feature-flags.values'模块成为您所指的“另一个角度模块”的依赖项。像这样:

angular.module('another', ['feature-flags.values']);

然后你可以通过注入它来在你的服务中访问它:

 export class FeatureFlagsService {
     static $inject: string[] = ["$q", "$http", "FeatureFlagValues","FeatureFlagsSettingStore"];
   }
© www.soinside.com 2019 - 2024. All rights reserved.