У меня есть директива, которая частично заполняется ng-повторением из родительской области, а затем слушатели прикрепляются в postLink
. Однако, поскольку содержимое передается, оно недоступно/интерполировано по времени ссылки.Угловое: связывание зашифрованных шаблонов
Я бросил вместе JSFiddle example, чтобы продемонстрировать:
Шаблон:
<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-transclude, которое я мог бы наблюдать, и тогда только ссылку, но не смог найти его.
Тех - Я копила с помощью '$ timeout' в качестве последнего курорт хоть! Надеюсь, что (а) я пропустил что-то очевидное, или (б) есть что-то опрятное. – Dave