注入angularjs指令

时间:2016-05-13 02:03:50

标签: javascript angularjs

我在脚本A:

中有这个结构
module.exports = angular.module('myApp').controller(..).directive(..)

我想注入额外的指令,以便我有这样的东西:

module.exports = angular.module('myApp').controller(..).directive(..).directive(..)

我想从脚本A的外部执行此操作。

有关如何实现这一目标的任何想法?我仍然追赶角度,任何帮助真的很感激!非常感谢!

2 个答案:

答案 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.modulecommonjs 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 {
        ...
    }
})