2016-05-13 37 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 { 
     ... 
    } 
})