2015-10-16 226 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"]; 
    }