Директива Angularjs получает данные из URL

0

Я определяю директиву в angularjs, у которых есть url для извлечения данных из базы данных. Я отображаю часть кода. моя директива:

app.directive('getData', function() {

return {
 restrict: 'E',
  scope: {
    url: '@',
    suggestion: '=data'
   },
  controller: ['$scope','$http', function($scope,$http){
    $http.get($scope.url)
      .success(function (data) {
        console.log(data);// display data 
        $scope.Items = data;
      });
   })
  template:
           <li\
          suggestion\
              ng-repeat="suggestion in suggestions track by $index"\
          </li>\
}

теперь, когда я создаю директиву, такую как это в html

<get-data url="/public/getEmployee" data="Items"></get-data>

но в нем нет данных, в то время как тот же код в контроллере управления находится в регуляторе угловой системы правильно.

  • 0
    Вы определяете директиву с именем getData а вы используете my-directive ?
  • 0
    @Chandermani это ошибка в типе.
Показать ещё 1 комментарий
Теги:

1 ответ

1
Лучший ответ

Вы вызываете HTTP-запрос внутри директивы и получаете данные внутри директивы, поэтому вам не нужно передавать переменную suggestion в области видимости.

Непосредственно используйте массив Items в item in Items track by $index шаблона item in Items track by $index.

Изолированная переменная области, переданная в свойстве scope, используется для получения данных из внешних зависимостей.

И ваше использование директивы должно быть

<get-data url="/public/getEmployee"></get-data>
  • 0
    Благодарю. это правильно и работа для меня.
  • 0
    почему я использую эту директиву в контроллере не работает?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню