我试图找到像这样的指令中包含的子代数:
<div my-directive="true">
<span ng-repeat="i in [1,2,3,4]>{{i}}</span>
</div>
指示:
angular.module('myModule').directive('myDirective', function() {
return {
restrict: 'A',
transclude: true,
template: '<canvas></canvas><div class="canvas-overlay"></div>',
controller: function($element, $transclude) {
$transclude(function(transcludeEl) {
$element.find('.canvas-overlay').append(transcludeEl);
});
console.log($element.find(".canvas-overlay")[0].children);
})
}
});
使用ng-repeat时,控制台日志为我提供了一个空的html集合,但是当我对范围进行硬编码时,控制台日志为我提供了正确的子元素。
上下文:我需要根据孩子的数量来设置画布的高度。
我也尝试将控制器功能更改为后链接功能,但仍然失败。
我究竟做错了什么?
最佳答案
controller: function($element, $transclude) {
$transclude(function(transcludeEl) {
$element.children().eq(1).append(transcludeEl);
});
我不能
.find(".canvas-overlay")
但.children()
可以。https://jsfiddle.net/xtx1nc2k/
关于javascript - 在 Angular Directive(指令)中查找被排除的ng重复子代数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33646403/