我正在递归地到达父“框”指令的控制器:
<body ng-app="main"> <!-- no nesting: parent is the just body --> <Box></Box> <script type="text/javascript"> angular.module('main',[]) .directive('Box',function() { return { restrict: 'E',controller: function() { },require: '?^Box',// find optional PARENT "Box" directive link: function(scope,iElement,iAttrs,controller) { // controller should be undefined,as there is no parent Box alert('Controller found: ' + (controller !== undefined)); } }; }); </script> </body>
我期望控制器变量在链接函数中未定义,但是我得到了实际框指令的控制器。
所以我的问题是…如何获得对PARENT控制器的访问情况,如下所示:
<Box> <Box></Box> </Box>
由于Angular 1.3,您可以使用两个口音^^在父元素“only”中搜索指令。
(no prefix)
– Locate the required controller on the current element. Throw an error if not found.?
– Attempt to locate the required controller or pass null to the link fn if not found.^
– Locate the
required controller by searching the element and its parents. Throw an error if not found.^^
– Locate the required controller by searching the element’s parents. Throw an error if not found.?^
– Attempt to locate the required controller by searching the element and its parents or pass null to the link fn if not found.?^^
– Attempt to locate the required controller by searching the element’s parents,or pass null to the link fn if not found.