控制器在另一个模块中的指令内引用的模块中定义

时间:2014-10-02 10:20:36

标签: javascript html angularjs

我有一个index.html(主入口点),我有一个main.js文件,比如说:

(function() {

var pop = angular.module('mainApp', []);

pop.directive = ('directive1', function() {
    return {
        restrict: 'E',
        templateUrl: notIndex.html,
        controller: // how to reference controller1 here? ,
        controllerAs: controller1Alias
    }

    });

// pop.directives some more...

})();

我有一个notIndex.html(模板或片段)和notMain.js中定义的这个html的相应控制器说:

(function() {

var app = angular.module('app1', []);

app.controller = ('controller1', function() {

    function1...
    function2...
    .
    .
    .
    functionN

});

})();

所以我的问题是:

  1. 如何在notMain.js的directive1中引用controller1?

  2. 我在notIndex.html中没有标签(它没有像模板那样有标题或正文),对吗?如何从这个html引用notMain.js中定义的AngularJS指令?在index.html中,我想?

  3. 感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以添加app1作为mainApp模块的依赖项,它应该能够通过控制器的名称引用控制器。像这样:

(function() {
    var pop = angular.module('mainApp', ['app1']);

    pop.directive = ('directive1', function() {
       return {
           restrict: 'E',
           templateUrl: 'notIndex.html',
           controller: 'controller1'
           controllerAs: 'controller1Alias'
       };
    });
})();

是否注意到我将app.directive更改为pop.directive?这是因为app1关闭时无法使用mainApp