Javascript 角度指令可以';你没有得到子元素吗?
首先,指令选择器子项位于属性的div元素中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 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'));
});
}
};
});