Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度指令可以';你没有得到子元素吗?_Javascript_Angularjs_Html - Fatal编程技术网

Javascript 角度指令可以';你没有得到子元素吗?

Javascript 角度指令可以';你没有得到子元素吗?,javascript,angularjs,html,Javascript,Angularjs,Html,首先,指令选择器子项位于属性的div元素中 <div id="ed" selector-child> // selector-child attrs directive <div class="testClass">Im no any directive</div> <div class="listClass" ng-repeat="aa in aas">Im has ng-repeate directive{{aa.text}

首先,指令选择器子项位于属性的div元素中

 <div id="ed" selector-child>  // selector-child attrs directive
    <div class="testClass">Im no any directive</div>
    <div class="listClass" ng-repeat="aa in aas">Im has ng-repeate directive{{aa.text}}</div>      
 </div>

您应该使用JQlite的
querySelector
方法:

 console.log(element[0].querySelector('.listClass'));

尝试使用
$timeout
允许在dom中生成
ng repeat

myApp.directive('selectorChild', function ($timeout) {
    return {
        restrict: "A",
        link: function (scope,element,attr) {
         $timeout(function(){
            console.log(element.find('.listClass'));
         });
        }
    };
});

作为替代方法,您可以向重复元素添加另一个指令,该重复元素需要此指令,然后使用
ng repeat
子范围的
$last
属性执行您计划执行的任何操作

如果第一个指令起作用,为什么OP需要更改查询方法?我尝试过,console.log输出为空,结果为空~为什么?感谢~我获得了成功的元素。但是为什么要使用$timeout呢?因为您的指令将在
ng repeat
有机会运行并创建元素列表之前发出
myApp.directive('selectorChild', function ($timeout) {
    return {
        restrict: "A",
        link: function (scope,element,attr) {
         $timeout(function(){
            console.log(element.find('.listClass'));
         });
        }
    };
});