是否可以动态填充该模块名称。我试图远离代码重复。这就是我所拥有的:
APP-categories.js;
(function () {
"use strict";
angular.module("app-categories", ["simpleControls", "ngRoute", "ngAnimate", "addNewTask"])
.config(function ($routeProvider) {
APP-tasks.js:
(function () {
"use strict";
angular.module("app-tasks", ["simpleControls", "ngRoute", "addNewTask"])
.config(function ($routeProvider) {
现在另一个控制器'addNewTaskController.js'应该由许多模块共享,在我的例子中是'app-categories'和'app-tasks':
(function () {
"use strict";
//angular.module("app-categories")
angular.module("app-tasks")
.controller("addNewTaskController", addNewTaskController);
答案 0 :(得分:1)
应该避免为所有模块自动执行此操作,因为这会造成更多弊大于利。
可以为该
创建一个通用模块angular.module("app-common", ["simpleControls", "ngRoute", "addNewTask"]);
然后加载它。
它仍然不应该被机械地包括在内,因为来自common
的某些模块可能会导致在单独测试模块时不希望出现的副作用。
答案 1 :(得分:0)
@estus建议很有用。我仍然可以像我原先计划的那样保留单独的控制器,并最终创建一个将由两个控制器共享的公共js文件,从而消除了所提到的代码重复。
以下是我设法做到的方法:
addNewTaskControllerForAppCategoriesModule.js:
(function () {
"use strict";
angular.module("app-categories")
.controller("addNewTaskController", addNewTaskController);
})();

addNewTaskControllerForAppTasksModule:
(function () {
"use strict";
angular.module("app-tasks")
.controller("addNewTaskController", addNewTaskController);
})();

addNewTaskCommon.js:
function addNewTaskController($scope, $http, $rootScope) {
...
}