2016-05-13 103 views
0

我在我的剧本一有这样的结构:进样angularjs指令

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

我要注入更多的指令,让我有这样的事情:

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

我想从这样做以外的脚本A.

任何想法如何实现?我还在追赶角度,任何帮助真的很感激!非常感谢!

回答

0

如果我理解正确,你想动态地创建你的指令。你的脚本

var dyDir = require('./dyDir.js'); 

var yourApp = angular.module('appName',[]); 
yourApp.controller('testCtrl', ...) 
dyDir(yourApp); //parse angular module instance as parameter 

(不同角度模块内),您可以在这样的打击代码,

//dynamic directive dyDir.js 
module.exports = function (app) { 
    app.directive(...) 
}; 

虽然这会工作,但我真的不认为使用angular.modulecommonjs module在同一时间是一个很好的做法,因为这会让其他开发人员感到困惑。

希望这可以解决您的问题。 :)

+0

非常感谢您的帮助!实际上,我想将我的指令注入到现有的角度模块中。我试着在这里重复使用现有的代码。我尝试了你所说的,但我不能说这是否可行,因为我无法调用脚本。我有assets.yaml文件,其中包含脚本的依赖项,其中包含“module.exports = ..“(我想改变),并且我添加了对dyDir.js的依赖,但这似乎不起作用。这似乎是另一个问题。我正在努力工作,如果您有任何想法,我会很感激。提前感谢! – Maria

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