我已经按照js-data角度教程在我当前的项目中设置了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迭代返回的对象,但不显示任何内容。我知道我的端点被点击并且返回数据是因为my console displays the returned shipment object。
本教程提到了如何将数据加载到视图中,但看起来是那些使用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*/
答案 0 :(得分:0)
您的装运说明数组嵌套在“shipmentInstructions”属性下,但默认情况下,js-data要求数据本身为数组。
您需要从该嵌套属性中提取数组。像afterFind
或afterFindAll
钩子这样的东西是一个很好的地方。请参阅另一个StackOverflow问题的my answer。