Ответ 1
См. $compile
. Вы можете использовать эту услугу аналогично этому:
var newDirective = angular.element('<div d2></div>');
element.append(newDirective);
$compile(newDirective)($scope);
Это выполнит компиляцию и привязку вашего нового элемента и установите d2
в действие.
Однако вы можете найти более простым и более angular, если вы можете как-то переписать свою оригинальную директиву с точки зрения других встроенных директив, таких как ng-repeat
или ng-include
, которые будут выполнять компиляцию и ссылку для вас.
Если ваша директива достаточно проста, она может просто что-то сделать в дополнение к массиву при прослушивании вашего события и указать шаблон, например
<div ng-repeat="evt in recordedEvents">
<div d2="evt"></div>
</div>