Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.06.2014, 13:54
Новичок на форуме
Отправить личное сообщение для Provincial Посмотреть профиль Найти все сообщения от Provincial
 
Регистрация: 24.06.2014
Сообщений: 3

ng-click не работает после $compile
Добрый день.

Есть фильтр, по которому запрашивается список товаров в html виде, в коде есть ng-show и ng-click, после $compile ng-show отрабатывает, а ng-click ни как не реагирует на клик.
При этом при первичной загрузки страницы (до использования фильтра) все директивы отрабатывают без проблем, после обновления списка ng-click не работает(

кусок кода из контролера фильтра. (Здесь я отправляю get с параметрами фильтра и выкладываю полученный список товаров в соседний div, перед этим естественно $compile)

Код:
    $scope.getFiltered = function(selected){
 /*.... код по обработке фильтра ...*/

        $http.get('<здесь url>').success(function(data) {
            var items = angular.element(data);
            $compile(items)($scope); 
            if($scope.model.navig.page == 1){
                angular.element('#catalog-list .items').html(items);
            }else{
                angular.element('#catalog-list .items').append(items);
            }
        });
ng-show срабатывает, а ng-click - нет(

кусок кода из контролера списка товаров

Код:
   
$scope.isSelected = function(id){
        if(typeof gShara.compareItems !== "undefined"){
            return (gShara.compareItems[id] == id);
        }else{
            return false;
        }
    }
    $scope.showAddCompare = function(id,action){
        $http.get('/ajax/compare.php?action='+action+"&id="+id).success(function(data) {
            angular.element(document.getElementById('ajax_block_compare')).html(data);
        });
isSelected - отвечает за отображение кнопки Добавить/Удалить в ng-show - он отрабатывает
showAddCompare - добавляет/удаляет элемент из списка (отправляет get и возвращает Html), вызывается в ng-click

В чём может быть проблема?
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2014, 12:18
Новичок на форуме
Отправить личное сообщение для Provincial Посмотреть профиль Найти все сообщения от Provincial
 
Регистрация: 24.06.2014
Сообщений: 3

РЕШИЛ наконец-то проблему.

Сделал следующим образом....

каждому товару(#catalog-list .items .item) в списке (#catalog-list .items) повесил контролёр с дублирующими функционалом ng-click, таким образом контролеры были в возвращаемом Html коде, который проходил $compile перед его выводом, в результате все события срабатывали на ура! ура! ура!

Надеюсь кому-то сэкономил пару часов этим топиком)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает js после динамической перезагрузки javaquester Элементы интерфейса 8 01.03.2014 15:18
Не работает строка после while buhalo88 Opera, Safari и др. 4 09.12.2013 00:16
Не работает show/hide после ajax обновления dts Events/DOM/Window 6 25.11.2013 23:31
trigger click не работает Mukhtar Общие вопросы Javascript 10 14.11.2013 17:06
Не работает кнопка отправки после загрузки Igor Shmigoff jQuery 2 29.12.2010 21:51