AngularUI team을 포함하여 많은 지시문 예제를 보았습니다. 여기에는 정리 작업이 수행되지 않습니다.
다음은 ui-date 지시문에서 jQuery datepicker를 만드는 예입니다. (source)
element.on('blur', function() { ... });
그들은 요소에 이벤트 핸들러를 배치,하지만 시점에서 그들은 이제까지 이벤트 바인딩을 해제 않습니다. 나는 다음과 같은 코드가 존재할 것으로 기대했을 것입니다.
var namespace = ".uiDate";
element.on('blur' + namespace, function() { ... });
element.on("$destroy" + namespace, function()
{
element.datepicker("destroy"); //Destroy datepicker widget
element.off(namespace); //Unbind events from this namespace
});
그래서 내가 이해할 수없는 것이 있는지 궁금합니다. 이 지시문이 생성되고 반복적으로 파괴되는 상황에서 메모리 누수가 발생하지 않았습니까?
무엇이 누락 되었습니까?
매우 유용한 답변에 비슷한 질문 : HTTP : /을 /stackoverflow.com/questions/26983696/angularjs-does-destroy-remove-event-listeners – hgoebl