我有一个名为 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>
我的问题是我无法弄清楚如何通过链接功能传递表单和 CoolFormCtrl 。
如果我注释掉要求:'form'行,那么 WhatsThis = CoolFormCtrl :
使用 require:'form'行取消注释 WhatsThis = coolForm
尝试传递第5个参数 WhatsThis = coolForm 和 AndThis = undefined
controller: 'CoolFormCtrl',
require: 'form',
link: function(scope, elem, attrs, WhatsThis, AndThis) {
$log.log(WhatsThis);
$log.log(AndThis);
有没有办法将控制器和所需的表单传递给指令链接函数?
答案 0 :(得分:3)
尝试:
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);
...
}
};
}]);
WhatsThis将是一系列控制器。