【问题标题】:Requiring Other Directive controller in child Directive在子指令中需要其他指令控制器
【发布时间】:2015-04-08 09:46:33
【问题描述】:

我在questionnaireItemsGroup 指令的模板中定义了一个questionnaireItem 指令。 在questionnaireItem 指令中,我需要"^questionnaireItemsGroup"

父窗体:

<form name="questionnaireForm" autocomplete="off" novalidate>
  <ol>
    <li>
      <questionnaire-items-group data-ng-model="questionnaireItemsGroupModel">
      </questionnaire-items-group>
    </li>
  </ol>
</form>

questionnaireItemsGroup模板:

<div>
  <ol class="">
    <li class="mm-li" ng-repeat="questionnaireItem in model.questionnaireItems">
      <questionnaire-item data-ng-model="questionnaireItem" view-state="{{viewState}}">
      </questionnaire-item>
    </li>
  </ol>
</div>

questionnaireItem 指令中的要求:

require: ['?ngModel', '^questionnaireItemsGroup'],

我得到错误:

错误:找不到指令“questionnaireItem”所需的控制器“questionnaireItemsGroup”!

需要ngModelform 控制器不是问题,之前已经做过几次。该指令的link 函数中的参数控制器则由一组控制器组成。

--但这也适用于包含/要求指令,对吗?我是否忽略了什么?

【问题讨论】:

  • 什么是actizQuestionnaireItem?该错误与您未在此处显示的其他一些指令有关
  • 那是一个项目特定的参考,现在被删除了。更新了错误消息 >> 'questionnaireItem', can't be found!

标签: angularjs angularjs-directive angularjs-controller


【解决方案1】:

我猜,由于您发布的代码没有显示,问题是您的指令 questionnaireItemsGroup 没有定义控制器:

.directive("questionnaireItemsGroup", function(){
  return {
    controller: angular.noop, // this should fix it
    // ...
  };
});

【讨论】:

  • 夏普,以为这样可以解决问题,但仍然遇到同样的错误,这很奇怪。
  • 然后发生了其他事情。这是有效的指令的基本实现:plnkr.co/edit/RedBMdgoXAfIQTepFH8w?p=preview
  • @SanJayFalcon,你的问题解决了吗?
  • 示例对我有用,我们发现确实有其他东西阻碍了正确的工作。谢谢!
猜你喜欢
  • 2013-03-15
  • 2016-06-14
  • 1970-01-01
  • 2015-05-13
  • 2013-10-14
  • 1970-01-01
  • 2013-01-30
  • 2016-04-29
  • 1970-01-01
相关资源
最近更新 更多