Данные JS загружают данные, но не отображаются в поле зрения
Я следовал руководству по js-data angular для настройки js-data-angular в моем текущем проекте.
определение модели:
.factory('shipmentFactory',
function(DS) {
return DS.defineResource({
name:'ShipmentInstructions',
idAttribute:'id',
basePath:'apiEndpoint'
}
);
}).run(function (shipmentFactory){})
В моем контроллере:
.controller('ShipListCtrl', function($scope,shipmentFactory) {
shipmentFactory.findAll().then(function(shipmentInstructions){
$scope.shipments = shipmentInstructions;
console.log($scope.shipments)
});
});
На мой взгляд, я пытаюсь перебрать возвращенный объект, используя ng-repeat, но ничего не отображается. Я знаю, что моя конечная точка получена, и данные возвращаются, потому что моя консоль отображает возвращенный объект отгрузки.
Учебник упоминает, как загрузить данные в представления, но выглядит для тех, кто использует ngRoute. Я использую ui-router в своем текущем проекте и столкнулся с большим количеством проблем, когда попытался разрешить этот ресурс в этом состоянии.
Этот ресурс используется в представлении, которое включено в другое представление - представление шаблона для состояния.
Просто ищите какое-то руководство о том, как сделать так, чтобы мои данные отображались на мой взгляд, пожалуйста, и заранее спасибо.
Пересмотренная модель отгрузки:
.factory('shipmentFactory',
function(DS) {
return DS.defineResource({
name:'ShipmentInstructions',
idAttribute:'id',
basePath:'apiEndpoint',
cacheResponse: true,
afterFindAll: function(data, cb){
//extract the array from that nested property
shipmentsArray = [];
//forloop to push every item returned to
for(var i = 0; i < data.shipmentInstructions.length; i++ ){
shipmentsArray.push(data.shipmentInstructions[i]);
}
cb(null,shipmentsArray)
}
}
);
}).run(function (shipmentFactory){})/*makes sure shipmentFactory gets defined*/
1 ответ
Ваш массив инструкций по отправке вложен в свойство "shipmentInstructions", но по умолчанию js-data ожидает, что сами данные будут массивом.
Вам нужно извлечь массив из этого вложенного свойства. Что-то вроде afterFind
или же afterFindAll
крюк будет хорошим местом для этого. Смотрите мой ответ на другой вопрос Stackru.