У меня есть директива, которая динамически добавляет дочерние пользовательские директивы в DOM на основе некоторого ввода.Все отлично работаетНо когда входные данные меняются, и я перерисовываю DOM с другим набором дочерних пользовательских директив, старые области действия дочерних пользовательских директив не удаляются, и, следовательно, прикрепленные к ним обработчики событий все еще находятся в памяти.
Я перерисовываю DOM, просто установив element [0] .innerHTML = ''.Есть ли способ удалить / уничтожить области действия пользовательской директивы?В некоторых статьях я видел, что можно вызывать область действия. $ Destroy, но как получить ссылку на область действия дочерней пользовательской директивы?
const linker = function (scope, element) {
scope.$watch('data', function () {
reRenderToolbar();
}, true);
const reRenderToolbar = function () {
element[0].innerHTML = '';
_.forEach(scope.data, function (item, key) {
const directive = item.CustomDirective;
scope.options = item.options || {};
html = '<' + directive + ' options="options"></' + directive + '>';
element.append(html);
}
});
}
$compile(element.contents())(scope);
};