繁体   English   中英

角度:指令:如何通过要求表格和控制器链接功能

[英]Angular: Directive: How to pass require form AND controller to link function

我有一个名为formNavHandler指令来处理脏检查和从页面到页面的导航。 formNavHandler依赖于一个称为CoolFormCtrl控制器和一个称为coolForm表单 我想这两个CoolFormCtrlcoolForm传递给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>

我的问题是我无法弄清楚如何通过链接函数同时传递formCoolFormCtrl

如果我注释掉require:'form'行,则WhatsThis = CoolFormCtrl

使用require:'form'行未注释WhatsThis = coolForm

当尝试传递第五个参数WhatsThis = coolFormAndThis = 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM