我有一个指令,该指令部分由父作用域中的 ng-repeat 填充,然后将侦听器附加到postLink
. 但是,由于内容是嵌入的,因此链接时间不可用/插值。
我整理了一个JSFiddle 示例来演示:
模板:
<script type="text/ng-template" id="directive.html">
<div>list item count: {{ count }} (should be {{2 + items.length }})</div>
<div>Transcluded content: <span ng-transclude></span></div>
</script>
<div ng-controller="Ctrl">
<ul frag>
<li ng-repeat="item in items">{{ item }}</li>
<li>4</li>
<li>5</li>
</ul>
</div>
代码:
app.directive("frag", function ($http) {
return {
restrict: 'A',
transclude: true,
templateUrl: 'directive.html',
link: function (scope, element, attrs) {
scope.count = element.find("li").length;
console.log(element);
},
controller: function ($scope) {
$scope.foundB = false;
}
};
});
在这种情况下,列表项计数最终为 2,而不是预期的 5 一个预期的 post-transclusion。
任何人有任何想法我怎么能做到这一点?期待找到某种我可以观察到的嵌入后事件,然后才进行链接,但找不到。