Angular指令需要在同一个元素上

时间:2017-04-10 15:02:29

标签: angularjs angularjs-directive

嗨试图要求相同的元素。根据角度文档,这是可能的。

  

A ^前缀会使指令自己查找控制器   元素或其父母;没有任何前缀,指令会看起来   只在它自己的元素上。

按照说明。我有两个指令,myD和myC ...希望能够从myC的链接ctrl属性访问myD。

我已经包含了指向我的codepen示例的链接。

var app = angular.module("app",[]);


app.directive("myD", function() {
   return {
      restrict : "E",
      template : "<b>myd</d>"
   }
});

app.directive("myC", function() {
   return {
      require : "myD",
      restrict : "A",
      link : function (scope, attr, ele, ctrl) {
         alert(JSON.stringify(ctrl));
      }
   }

});

<div ng-app="app">
   <my-d my-c></my-d>
</div>

http://codepen.io/mantisimo/pen/KWOxeg

收到以下错误:

  

错误:[$ compile:ctreq]控制器&#39; myD&#39;,指令&#39; myC&#39;,   无法找到!

1 个答案:

答案 0 :(得分:2)

使用require时,请求angular为所需元素注入控制器。在您的情况下,控制器未定义。

错误发生在myD,你需要声明一个控制器。

app.directive("myD", function() {
   return {
      restrict : "E",
      template : "<b>myd</d>",
      controller: function(){}
   }
});