使用 Angular.Module 的 AngularJS 指令定义
angularjs directive definition using angular.module
请谁能解释为什么以下抛出"参数'MainCtrl'不是一个函数,未定义"错误,这似乎与使用带有指令的模块依赖注入有关(?!
angular.module('app', [])
.controller('MainCtrl', [function() {
var self = this;
self.name = "will this work";
self.items = [
{
name: "name 1",
test: "test 1"
},
{
name: "name 2",
test: "test 2"
}
];
}]);
angular.module('app',[])
.directive('typeahead', [function() {
return {
templateUrl: 'type-ahead.html',
restrict: 'AEC',
scope: {
items: '=',
prompt: '@',
title: '@',
subtitle: '@',
model: '=',
onSelect: '&'
}, <...more code>
然而,当我删除
[ ]
模块依赖关系大括号从指令读取
angular.module('app').directive('typeahead', ...)
如果我将指令定义为控制器定义之后的级联,它也可以很好地工作,即
angular.module('app', [])
.controller('MainCtrl', [function() {
var self = this;
self.name = "will this work";
self.items = [
{
name: "name 1",
test: "test 1"
},
{
name: "name 2",
test: "test 2"
}
];
}])
.directive('typeahead', [function() {
return {
提前感谢!
您遇到了 Angular 的创建与检索问题:
请注意,使用 angular.module('myModule', []) 将创建模块 myModule 并覆盖任何名为 myModule 的现有模块。使用 angular.module('myModule') 检索现有模块。
第一次运行angular.module('app',[])
时,Angular 会创建一个名为 app
的模块。下次只需要运行angular.module('app')
,Angular 会尝试加载现有的模块app
。
由于您再次调用angular.module('app',[])
,模块app
已重新初始化。这就是为什么MainCtrl
现在没有定义。
相关文章:
- AngularJS指令出错-无法读取属性'编译'的未定义
- AngularJS指令单元测试中未定义的函数
- 错误:[$compile:nonassign]表达式'未定义'与指令'内容可编辑'是不可
- 如何在自定义指令中获取计算的属性
- 向动态生成的DOM添加Angular自定义指令
- 自定义指令中的AngularJS ng模型
- 如何在html中以角度显示自定义指令的作用域
- AngularJS自定义日期选择器指令
- 自定义指令模板中的AngularJS控制变量
- 与ng attr myCustomAttribute匹配的自定义属性指令
- 角度指令控制器:参数不是函数,未定义
- 使用 Angular.Module 的 AngularJS 指令定义
- 为什么角度为在同一 DOM 元素上定义的指令定义“优先级”属性
- 是否可以从指令定义内部访问指令的实例
- 返回指令定义中的对象和函数之间的区别
- 如何在指令定义期间将新指令正确添加到指令中
- 在指令定义中使用$compile的意义是什么?
- 指令定义语法澄清
- Angular JS指令定义——需要ngModelController和自定义控制器
- 在{}和link中为angular指令定义独立作用域变量的区别