[英]Angular: Directive: How to pass require form AND controller to link function
我有一个名为formNavHandler的指令来处理脏检查和从页面到页面的导航。 formNavHandler依赖于一个称为CoolFormCtrl的控制器和一个称为coolForm的表单 。 我想这两个CoolFormCtrl和coolForm传递给formNavHandler的链接功能
angular.module('cool').directive('formNavHandler', [
'$log', function($log) {
return {
restrict: 'A',
scope: {
disabled: '=coolFormDisabled'
},
controller: 'CoolFormCtrl',
require: 'form',
link: function(scope, elem, attrs, WhatsThis) {
$log.log(WhatsThis);
...
}
};
}
]);
像这样使用:
<form name="coolForm" form-nav-handler=true cool-form disabled="!CurrentUser.canUpdate">
...
</form>
我的问题是我无法弄清楚如何通过链接函数同时传递form和CoolFormCtrl 。
如果我注释掉require:'form'行,则WhatsThis = CoolFormCtrl :
使用require:'form'行未注释WhatsThis = coolForm
当尝试传递第五个参数WhatsThis = coolForm和AndThis = undefined
controller: 'CoolFormCtrl',
require: 'form',
link: function(scope, elem, attrs, WhatsThis, AndThis) {
$log.log(WhatsThis);
$log.log(AndThis);
有什么方法可以将控制器和必需的形式都传递给指令链接功能?
尝试:
angular.module('cool').directive('formNavHandler', [
'$log', function($log) {
return {
restrict: 'A',
scope: {
disabled: '=coolFormDisabled'
},
require: ['formNavHandler', 'form'],
controller: 'CoolFormCtrl',
link: function(scope, elem, attrs, WhatsThis) {
$log.log(WhatsThis);
...
}
};
}]);
这将是一个控制器数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.