2015-09-22 3 views
0

У меня есть часть представления, которая освежает себя, скажем, что div скрывается, когда выполняется вызов API, и появляется, когда получен ответ.Функция директивной ссылки не называется

Эта часть обзора (div) имеет угловую директиву.

Посмотреть

<div ng-controller="myCtrl> 
    <input type="button" ng-click="callAPI()"> 
    <div ng-show="isAPICallComplete"> 
     <p data-my-directive="something" ng-repeat="name in names">{{name}}</p> 
    </div> 
</div> 

Директива

angular.module('myModule') 
.controller('myCtrl', function ($scope, $http) { 
    $scope.callAPI = function() { 
     $http.get('someURL').then(function (response) { 
      $scope.isAPICallComplete = true; 
      $scope.names= response.names; 
     }); 
    } 
}) 
.directive('myDirective', function() { 
    return { 
     restrict: 'A', 
     link: function (scope, element, attrs) { 
      console.log('reached directive'); 
     } 
    } 
}); 

С кодом выше, на странице загрузки вызова API уже завершен, и, следовательно, ДИВ показывает вверх, который затем вызывает угловую директиву, и я мог видеть консоль входа в систему. Но когда в других условиях API вызывается, div скрывается сам и появляется снова. В этом случае угловая директива не вызывается (я не вижу сообщение журнала консоли).

+0

* «Но когда в других условиях API вызывается, div скрывается сам и появляется снова» * Почтовый код для этого. – dfsq

+0

@dfsq Добавлена ​​информация. –

+0

не должен быть

, так как вы определили директиву как myDirective? – Shivi

ответ

1

Вы можете сделать:

Просто измените нг-шоу нг-если он будет работать, Поскольку DOM будет создан снова используя нг-если

+0

Я пробовал это. Это не сработало. –

+0

просто проверьте сейчас. У меня есть обновление – VizardCrawler

+0

Спасибо. Переход на ng-if вместо ng-show помог мне. –

0

Просто подумал, что это стоит упоминание

ng-if удаляет или добавляет элемент в DOM, тогда как ng-show только скрывает или показывает элемент с использованием свойств css.

Смежные вопросы