嗨试图要求相同的元素。根据角度文档,这是可能的。
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;, 无法找到!
答案 0 :(得分:2)
使用require
时,请求angular为所需元素注入控制器。在您的情况下,控制器未定义。
错误发生在myD
,你需要声明一个控制器。
app.directive("myD", function() {
return {
restrict : "E",
template : "<b>myd</d>",
controller: function(){}
}
});