JS-Data 加载数据但不在视图中呈现

JS-Data loads data but doesn't render in view

我已按照 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 迭代返回的对象,但没有显示任何内容。我知道我的端点被命中并返回数据,因为 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*/

您的装运说明数组嵌套在 "shipmentInstructions" 属性 下,但默认情况下 js-data 期望数据本身就是数组。

您需要从嵌套的 属性 中提取数组。 afterFindafterFindAll 钩子之类的东西是执行此操作的好地方。请参阅另一个 Whosebug 问题的