2015-02-24 3 views
0

У меня проблемы с json, исходящими из вызова ajax и ng-repeat.Невозможно использовать ng-repeat с JSON от ajax-вызова

Я разместил здесь свой код http://jsfiddle.net/7quj9omw/, так что вы можете просматривать более организованным способом, хотя я знаю, что он не является полным, запуск этого процесса просто приведет к массивной ошибке и содержит мой локальный url для вызова ajax.

Дело в том, что мой объект JSON извлекается отлично, я могу console.log (EventsService.Todos()) в моем прекрасном режиме EventController, он выводит на экран объект JSON, но при передаче ng-repeat в разметке , он не будет работать.

Если я копирую свой JSON и отправляю его прямо в свой код, он отлично работает. Я глубоко думаю, что это проблема синтаксического анализа, но я уже попытался использовать PARSE.json в своей переменной и не работает.

Я делаю что-то не так, передавая свои данные с моего сервиса до моего разметки html ng?

Если у кого-нибудь есть какие-либо подсказки, я буду благодарен, спасибо.

EDIT:

есть оттиск console.log, что я сделал в моей JSON: enter image description here

Ниже приведен пример моего возвращения JSON:

[ 
 
    { 
 
     "id":"26", 
 
     "idDeles":"zCNTdU", 
 
     "data":"2015-02-21", 
 
     "titulo":"Didge Steakhouse Pub ", 
 
     "descricao":"Noite de s\u00e1bado no Didge Steakhouse Pub em Balne\u00e1rio Cambori\u00fa. ", 
 
     "fotografo":"Mariana Haag", 
 
     "fonte":"http:\/\/night.com.br\/fotos\/zCNTdU", 
 
     "status":"1", 
 
     "quantidadeFotos":"78", 
 
     "views":"0", 
 
     "thumb":"http:\/\/night.com.br\/arquivos\/casas\/50\/fotos\/24790\/tb\/0001_img_0020.jpg" 
 
    }, 
 
    { 
 
     "id":"25", 
 
     "idDeles":"zqNTdU", 
 
     "data":"2015-02-21", 
 
     "titulo":"Showbol Arena ", 
 
     "descricao":"Noite de s\u00e1bado no Showbol Arena em Itaja\u00ed. ", 
 
     "fotografo":"Adivasson Correa", 
 
     "fonte":"http:\/\/night.com.br\/fotos\/zqNTdU", 
 
     "status":"1", 
 
     "quantidadeFotos":"165", 
 
     "views":"0", 
 
     "thumb":"http:\/\/night.com.br\/arquivos\/casas\/181\/fotos\/24788\/tb\/0001_img_0010.jpg" 
 
    } 
 
]

ответ

1

Взгляните JSFiddle Я загрузил json, который вы опубликовали, потому что я не могу получить доступ к URL-адресу в коде.

angular.module('nightbcApp', []) 
.factory('EventService', function($http, $q) { 
    return { 
     Todos: function() { 
      var defer = $q.defer(); 
      $http.get("http://localhost/td.json") 
       .success(function(data){ 
        defer.resolve(data); 
       }) 
       .error(function(response){ 
        defer.reject(response); 
       }); 
      return defer.promise; 
     } 
    }; 
}) 
.controller('EventsController', function($scope, EventService) { 
    EventService.Todos().then(function(data) { 
     $scope.Eventos = data; 
    }); 
}) 

Angular $q

+0

вы, сэр, заслуживаете куки! это сработало довольно хорошо, просто возникли некоторые проблемы, из-за которых вы ошиблись, события, запутанные с событием (в единственном числе), но это ничего. Я очень ценю! Это действительно запутывает.затем() для меня. К настоящему времени я не знаю, почему это работает. Но спасибо!!! –

+0

Взгляните на [этот пост] (http://dulitha.me/blog/2014/10/08/javascript-promises-basics/) может убрать некоторые сомнения – josegomezr

+0

большое спасибо! –

0

Исправленный ответ:

$http.get("http://10.1.1.5/nightbc/public/index/phonegap-eventos") 
         .success(function (response) { 
          return response.data; 
         }).error(function (response) { 
          return error; 
         }); 

Попробуйте добавить .data для ответа, посмотрите, работает ли это.

+0

привет там, она возвращает "TypeError: Не удается прочитать свойство 'затем' неопределенных" в консоли. спасибо за попытку помочь мне –

+0

Я пересмотрел свой ответ – floor

+0

Спасибо за ваши усилия, попробовал это тоже, но не работал. josegomezr мог найти правильный ответ. –

0

Поместите div вокруг метки a и img и выполните повторение там. Посмотрите, работает ли это.

Редактировать: Я не поймал не присвоение, что определенно будет проблемой. Если это все еще не работает, у меня возникла проблема с ng-repeat в тегах, таких как IMG, и попробуйте поместить их в div и поместите туда повтор.

+0

привет, попробовал, я верю, что это не сам ng-repeat, так как он работает с моим JSON прямо в коде, я верю, что проблема заключается в моем JSON, исходящем от вызова ajax. –

+0

Попробуйте ng-repeat = "событие в Eventos [0]" Я думаю, у вас могут быть вложенные массивы, не намереваясь. – aminner

+0

попробовал, хотя это не сработало, я думал, что это очень умно, я верю, это что-то вроде того, что рушится, я обновил свой пост печатью моего console.log из –

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