Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在AngularJS中将配置从一个模块推送到另一个模块_Angularjs_Configuration - Fatal编程技术网

如何在AngularJS中将配置从一个模块推送到另一个模块

如何在AngularJS中将配置从一个模块推送到另一个模块,angularjs,configuration,Angularjs,Configuration,我正在寻找一种方法,将一些配置从几个模块“发送”或“注册”到一个模块 其想法是,不同的模块将有自己的路由配置。一个单模块控制器将根据这些配置构建菜单 我想“发送”或“注册”配置,而不是查询,因为菜单控制器无法知道哪些模块可用 以下是一个满足我需求的解决方案: 每个模块都使用$routeProvider定义自己的路由,其中包含一个自定义参数,用于定义是否应在菜单中显示路由,以及另一个具有要显示名称的自定义参数。(参见上面的模块A示例) 然后,菜单控制器将循环$route.routes变量(包含所有

我正在寻找一种方法,将一些配置从几个模块“发送”或“注册”到一个模块

其想法是,不同的模块将有自己的路由配置。一个单模块控制器将根据这些配置构建菜单


我想“发送”或“注册”配置,而不是查询,因为菜单控制器无法知道哪些模块可用

以下是一个满足我需求的解决方案:

每个模块都使用$routeProvider定义自己的路由,其中包含一个自定义参数,用于定义是否应在菜单中显示路由,以及另一个具有要显示名称的自定义参数。(参见上面的模块A示例)

然后,菜单控制器将循环$route.routes变量(包含所有已定义的路由)以生成de菜单。(参见上述模块B示例)

单元A:

angular
  .module('module-a', ['ngRoute'])

  .config(function ($routeProvider) {
    $routeProvider
      .when('/path-a', {
        controller: 'ModuleAController',
        templateUrl: 'path/to/template.html',
        menuDisplay: true, // Custom parameter
        displayName: 'Solution Manager' // Custom parameter
      });
  });
模块B:

angular
  .module('module-b', [])

  .controller('MenuController', ['$scope', '$route',  function ($scope, $route) {
    var entries = [];
    angular.forEach($route.routes, function (route, path) {
      if ( route.menuDisplay == true ) {
        this.push({
          displayName: route.displayName,
          route: '#' + path
        });
      }
    }, entries);
    $scope.menu = entries;
  }]);
您可能会添加更多的检查以确保提供displayName,等等