івент на завантажений DOM треба вішати через незмінний батьківський DOM
після завантаження AJAX'ом контенту, в ньому необхідно ініціалізувати всі js-елементи (selectordie, confirmation, ajaxform, слайдери, управління html5-audio/video)
"важкість" коду
Код вище при закритті модального вікна всього-навсього отримуює і передає оновленні опціі в селект. Таких функцій дуже багато.
О! Саме із такими проблемами AngularJS справляється досить добре. Яким чином? - За допомогою тих же директив, які описують поведінку користувальницьких тегів.
1. частини коду в AngularJS обмінюються даними за допомогою сервісів - цим самим вирішується ваша проблема централізації.
2. хоча самі по собі директиви в AngularJS не є чимось таким же простим як метод $.ajax() в jQuery, але я, наприклад, на них перейшов якраз коли вирішував точно таку ж проблему - ініціалізація динамічно-завантаженого контента. AngularJS пропонує підхід автоматичної ініціалізації завантаженої вьюхи, або ж частини коду у вьюхі за допомогою блоків типу
<div class="msg" ng-if="msg[0]">
Необхідно вказати наступні дані:
<ul>
<li ng-repeat="m in msg">{{m}}</li>
</ul>
</div>
Тут директива ng-if перевіряє наявність даних в змінній msg, і якщо даних немає, то цей блок не буде ініціалізовано.
3. ну і подивіться на цей же приклад щоб оцінити "важкість" коду - за допомогою директиви ng-repeat="m in msg" можуть виводитись повідомлення і автоматично передаватись у змінну {{m}}. Таким чином може виводитись цілий список (а не лише один пункт списку).