我在脚本A:
中有这个结构module.exports = angular.module('myApp').controller(..).directive(..)
我想注入额外的指令,以便我有这样的东西:
module.exports = angular.module('myApp').controller(..).directive(..).directive(..)
我想从脚本A的外部执行此操作。
有关如何实现这一目标的任何想法?我仍然追赶角度,任何帮助真的很感激!非常感谢!
答案 0 :(得分:0)
如果我理解正确,您想要动态创建指令。 (在不同的角度模块内)你可以按照打击的方式进行编码,
//dynamic directive dyDir.js
module.exports = function (app) {
app.directive(...)
};
你的剧本
var dyDir = require('./dyDir.js');
var yourApp = angular.module('appName',[]);
yourApp.controller('testCtrl', ...)
dyDir(yourApp); //parse angular module instance as parameter
虽然这样可行,但我真的不认为同时使用angular.module
和commonjs module
是一个好习惯,因为这会让其他开发人员感到困惑。
希望这可以解决您的问题。 :)
答案 1 :(得分:0)
我通过以下方式解决了这个问题 - 如果它可以对任何人有任何帮助:
假设你有一个现有模块myModule,两个控制器myController1和myController2(两个控制器的代码在文件controller1.js和controller2.js中)。这是你的文件myapp.js中的代码:
module.exports = angular.module("myModule", [])
.controller('myController1', require('./controller1.js'))
.controller('myController2', require('./controller2.js'))
假设您想在模块myModule中注入额外的指令。您将重用该模块。
您将使用以下内容创建一个新文件:
require('./myapp.js');
require('./mydirective.js'); //this is your new directive
var app = angular.module("myModule"); //get an existing module
app.directive('directiveName', function() {
return {
...
}
})