HTML выглядит так:
<div ng-controller="MainCtrl">
<outer>
<inner ng-repeat="d in data">
<div>{{d}}</div>
</inner>
</outer>
</div>
Повтор работает, и внутренняя директива применяется, как и ожидалось.
Внешняя директива выглядит так:
directives.directive('outer', function () {
return {
compile: function (elm) {
// ... do some jQuery
}
}
});
Без повтора внешняя директива применяется, как и ожидалось. Но с повтором внешняя директива применяется до того, как повтор запишет соответствующие узлы в DOM.
Я видел предложения использовать тайм-аут в директиве, что мне кажется чем-то вроде взлома. Кроме того, похоже, что есть хук готового повтора, который я мог бы использовать, чтобы затем изменить область действия и повторно применить директиву.