Директивы при 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, время: 10:26. |