在儿童指令中要求其他指令控制者

时间:2015-04-08 09:46:33

标签: angularjs angularjs-directive angularjs-controller

我在questionnaireItem指令的模板中定义了questionnaireItemsGroup指令。 在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'],

我收到错误:

  

错误:[$ compile:ctreq]无法找到指令'questionnaireItem'所需的控制器'questionnaireItemsGroup'!

要求ngModelform控制器不是问题,之前已多次这样做。然后,指令的link功能中的参数控制器由一组控制器组成。

- 但这应该适用于包括/要求指令吗?我忽略了什么吗?

1 个答案:

答案 0 :(得分:0)

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

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