AngularJS指令不注入&给出错误

时间:2016-05-29 05:09:33

标签: angularjs angularjs-directive

我正在尝试注入directive,但我收到了一些错误。实际上,我已将modules声明为数组,然后推送到应用程序,但仍无法正常工作。

这是我的代码:

var appModules = ['app.directives', []]

var app = angular.module('plunker', appModules);


app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
});


angular.module('app.directives', []).directive('myContent', function(){

  return{

    link:function(scope, element, attrs){

      console.log("hi");

    }

  }

})

Live Demo

4 个答案:

答案 0 :(得分:3)

var appModules = ['app.directives', []]更改为var appModules = ['app.directives']

答案 1 :(得分:1)

模块声明的第二个参数是依赖项的数组。但是你在传递给注入的appmodules中有一个额外的空数组

更改

var appModules = ['app.directives', []]

var appModules = ['app.directives']

DEMO

答案 2 :(得分:1)

appModules中,您不能在其中使用空白数组。

因为它不会识别模块,因为那里存在空数组。

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

当我们直接注入appModules时,它显然会出错

  

无法实例化模块

因为它无法识别其中的空数组。

 var appModules = ['app.directives'];

这就是你必须使用的东西。

答案 3 :(得分:1)

按以下方式更改您的代码:

// Define the name of the directive module
var directiveModule = 'app.directives';

// Create the directive module itself
angular.module('app.directives', []);

var appModules = [directiveModule];

// Create the main module
var app = angular.module('plunker', appModules);

// Add controller on the main module
app.controller('MainCtrl', function ($scope) {
    $scope.name = 'World';
});

// Register directive on the directives module
angular.module('app.directives').directive('myContent', function () {
    return {
        link: function (scope, element, attrs) {
            console.log("hi");
        }
    }
});

请记住:angular.module('some-name', [])创建一个名为some-name的新模块,而angular.module('some-name')将使用名为some-name的现有模块,如果之前未创建该模块,则会抛出异常