Angular JS指令定义——需要ngModelController和自定义控制器
Angular JS Directive Definition - Require ngModelController as well as a custom controller
我想让我的Angular指令的大部分功能都在它们的控制器代码中,而link函数只是用来将两个不同的指令控制器绑定在一起。
我遇到了一个问题,当它涉及到"需要"一个控制器,并有"控制器"定义以及。我应该如何在链接函数中获得对我指定的控制器的引用?
示例代码(当然没有所有周围的模块)。指令的东西)
return {
require:'ngModel',
controller: 'CustomDirectiveCtrl',
link: function(scope, element, attrs, controllers)
{
console.log(controllers);
}
};
'controllers'包含了ngModelController,但是没有给我一个访问CustomDirectiveCtrl的方法。
如何从link函数中访问ngModelController和CustomDirectiveCtrl ?
有时候你永远不会发现问题,直到你试着向别人解释。
查看了Angular JS的ngModel的源代码后,我找到了解决方案。下面是如何修复我上面的代码,以防其他人遇到同样的理解问题:
https://github.com/angular/angular.js/blob/master/src/ng/directive/input.js L2347
module.directive('customDirective', function(){
return {
require:['customDirective', 'ngModel'],
controller: 'CustomDirectiveCtrl',
link: function(scope, element, attrs, controllers){
// CustomDirectiveCtrl is controllers[0],
// NgModelController is controllers[1]
console.log(controllers);
}
}
});
我认为需要有一个不同的语法来获得你自己的控制器,而不是获得不同模型的控制器。这比我想象的要简单。
相关文章:
- 如何正确地将数据从自定义服务传递到角度控制器
- 在自定义角度指令中使用控制器
- 角度 js 自定义服务/工厂无法注入控制器/配置
- 如何从视图中触发事件(自定义事件)并在 Ext JS 的控制器中处理它们
- 实例化自定义角度控制器
- 在 ember 控制器中创建自定义函数
- 在多个控制器中的 select 指令上公开自定义$errors
- [自定义指令]将范围.$watch放在链接上与将范围.$watch放在控制器上的区别
- UI 引导程序自定义指令控制器不是一个函数
- 使用自定义控制器在不同视图中共享范围
- 在路由中设置自定义控制器属性
- angular将控制器函数重新用作自定义orderBy函数
- AngularJS-设置控制器'访问DOM的自定义指令中的$scope变量
- 与控制器在同一元素中的自定义指令作用域
- 角载荷自定义控制器
- 控制器性能比较中的自定义过滤器与过滤器功能
- Angular JS指令定义——需要ngModelController和自定义控制器
- ASP.. Net MVC复选框值从视图到自定义控制器方法
- 如何添加自定义控制器而不添加额外的层在谷歌地图
- Vimeo内嵌视频自定义控制器(全屏和音量控制)在media element js中不起作用