Я использую Angular для взаимодействия с jQuery Mobile и создания нескольких страниц, но у меня проблема с сервисом $ http при подключении к моим запросам JSON. У меня есть несколько массивов я заселение с функциями и может вернуть данные в моих страниц, за исключением времени я получаю ошибки как этотУгловая длина ответа HTTP undefined
Не удается прочитать свойство «длина» неопределенного
Мои код выглядит так:
$http.jsonp(url).success(function(data) {
for (i=0; i<data.PROJECT.length; i++)
$scope.ProjectList.push({ id:data.PROJECT[i].PROJECT_CODE, name:data.PROJECT[i].PROJECT_DESC });
});
Цикл My For, где он будет случайно разбиваться. Я также пробовал подход «затем»:
var request = $http.jsonp(url);
return request.then(function(request) { return request.data.PROJECT; }, handleError);
Такая же ошибка (или отсутствие ошибок и пробелов). Что я делаю не так? У меня есть каждый API-вызов в его собственной функции, поэтому он не должен повторно использовать объекты (может быть, он добавляет их?). Это часть 1; часть 2 разделяет мой код на контроллер/службу - я получаю эти же ошибки, когда я это делаю.
UPDATE
Я создал jsFiddle here для показа, как значения будут ИНОГДА - запустить его несколько раз, и вы заметите, что массивы по очереди возвращаются пустыми. Если вы смогли увидеть вывод console.log, вы увидите, что ProjectList содержит результирующий набор EquipList (в дополнение к ProjectList) и наоборот.
Как выглядит 'data'? Попробуйте консоль.log (data) 'в обратном вызове успеха – Brennan
кажется, что в первом случае вы должны использовать' $ http.jsonp (url) .success (функция (данные) { для (i = 0; i
Grundy
Не использовать объект запроса внутри вашей функции param..use что-то другое, например' res', во втором вызове это должно быть 'return request.then (function (res) {return res.data.PROJECT;}, handleError);' –