【问题标题】:[Angularjs]How to dynamic add a service to angular module?[Angularjs]如何动态添加服务到角度模块?
【发布时间】:2018-05-30 15:40:33
【问题描述】:

我想向我的 Angularjs 模块动态添加一些服务。不知道有什么方法可以做到吗?

// Senarios config for dev
let scenarioConfig1 = require(`./${env}/scenarios_config_files/scenario1.config`);
let scenarioConfig2 = require(`./${env}/scenarios_config_files/scenario2.config`);
let scenarioConfig3 = require(`./${env}/scenarios_config_files/scenario3.config`);
let scenarioConfig4 = require(`./${env}/scenarios_config_files/scenario4.config`);
let scenarioConfig5 = require(`./${env}/scenarios_config_files/scenario5.config`);
let scenarioConfig6 = require(`./${env}/scenarios_config_files/scenario6.config`);

//I wonder if there is any way, I can add these 6 service dynamically to my Angularjs
//Module instead adding them one by one
module.exports = angular.module('myApp', [])
  //scenarios config service for dev and prod
  .service('scenarioConfig1', [
    scenarioConfig1])
  .service('scenarioConfig2', [
    scenarioConfig2])
  .service('scenarioConfig3', [
    scenarioConfig3])
  .service('scenarioConfig4', [
    scenarioConfig4])
  .service('scenarioConfig5', [
    scenarioConfig5])
  .service('scenarioConfig6', [
    scenarioConfig6]);

【问题讨论】:

    标签: angularjs service module


    【解决方案1】:

    可以这样做:

    let services = [
      'scenario1',
      'scenario2',
      'scenario3'
    
    ].map(s => {
      return {
        name: s.replace(/(\d+$)/, 'Config$1'),
        func: require(`./${env}/scenarios_config_files/${s}.config`)
      }
    });
    
    
    let app = angular.module('myApp', []);
    services.forEach(o => app.service(o.name, [o.name, o.func]));
    module.exports = app;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      • 2023-01-07
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      相关资源
      最近更新 更多