2015-10-16 124 views
0

这是我的一个主角度模块,其中定义了常量。TypeScript将一个角度模块插入另一个角度模块

/// <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"]; 
    } 
} 

回答

0

如果你想使用“FeatureFlagValues”常量你需要做的“功能flags.values”模块的“另一角模块”你指的依赖。像这样:

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

然后你就可以只注射它像这样访问它在您的服务:

export class FeatureFlagsService { 
    static $inject: string[] = ["$q", "$http", "FeatureFlagValues","FeatureFlagsSettingStore"]; 
    }