簡體   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