我正在尝试注入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");
}
}
})
答案 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
的现有模块,如果之前未创建该模块,则会抛出异常