Я создал проблему plunkr demo. Проблема, с которой я столкнулся, довольно проста: вызов $ destroy вручную или удаление элемента не запускает событие $ destroy.
function link(scope, element, attrs) {
// call scope $destroy, However it doesn't fire the event
scope.$destroy();
// This also won't fire $destroy
element.remove()
scope.$on("$destroy", function handleDestroy() {
console.log("I am destroyed")
})
}
я еще больше запутался после прочтения этой answer. Если element
также получает событие $ destroy, то почему люди отключают событие на scope
$ destroy вместо element
$ destroy?
Привет, я ценю ваш ответ, но 'element.remove()' не вызывает $ уничтожить –
когда вы вызываете 'element.remove()', 'element.on ('$ destroy', ...' вызывается, а не 'scope. $ on ('$ destroy', ...)' Смотрите мое обновление выше в ответ. – Nihat