Директивы при ajax обновлении из вне
Есть некий блок с директивой edit-block
<div edit-block id="t36"> </div> Сама директива:
angular
.module('lessonEdit')
.directive('editBlock', function() {
return {
link: function(scope, element, attrs) {
element.bind('click', function() {
alert('test');
});
}
};
});
Проблема в том, что после аякс обновления блока с данным тегом - ангуляр уже не видит директиву. Как "возобновить" все директивы в обновленном блоке? Пользуюсь PHP фреймворком Yii, и там есть функция которая обновляет его виджет - список, вот после этого обновления
$.fn.yiiListView.update('blocks_list', {
});
и перестают работать директивы |
Предполагаю, что ты еще и шаблоны с php-тегами делаешь
Ангулар не для этого, он так не работает. Все что с бэкэнда можно посылать на фронэнд, когда там используется ангулар - это json. Если что то начал делать на ангуларе, на ангуларе надо делать все, в том числе и запросы, иначе пришедший хтмл нужно компилять с текущим scope https://docs.angularjs.org/guide/compiler |
Проект большой, код переделывается постепенно, виджеты на php трогать не хотел бы. Неужели нет другого выхода?
Читал по форумах - упоминают о $scope.apply(), но что-то не получается, либо не так делаю |
Цитата:
А что бы хтмл из внешних систем использовать с директивами ангуляра именно compile |
Спасибо за compile. Не знаю на сколько коряво написал, писал в лоб.
После аякс оновления листа:
var template=angular.element('#blockList').html();
angular.element('#blockList').empty();
angular.element('#blockList').append(($compile(template)(scope)));
|
| Часовой пояс GMT +3, время: 22:18. |