Я просто натолкнулся на действительно любопытную проблему во время игры.AngularJS breaks on innerHTML edit
Я создал функцию каротажа, которая добавляет текст в document.body.innerHTML
вот так.
function log(text)
{
document.body.innerHTML += text + '<br>';
}
Если я сейчас позвоню этому функционалу из области моего контроллера, он разломит AngularJS.
Не могли бы вы объяснить это поведение?
Demo - нажмите несколько раз подряд, они стреляют. нажмите foo один раз, ни один из событий кликов больше не работает
Поскольку вы устанавливаете 'innerHTML', вы фактически воссоздавать весь элемент тела. Элементы, с которыми связаны контроллеры и директивы, уничтожаются, и ваше приложение будет ломаться. 'document.body.innerHTML + =' - плохая идея в любом сценарии, но особенно при использовании углового. – Rhumborl
@Rhumborl вы могли бы написать это как ответ, так как это определенно правильный и хорошо объясненный ответ? – Aides