4

我试图找出编写与其他模型相关的模型的最佳方法,例如具有 1 个或多个 OrderItems 的 Order。

加载订单时如何获取相应的 OrderItems?

angular
    .module('MyApp.services', ['ngResource'])
        .factory('Order', function($resource) {
            return $resource('/api/v1/Order/:orderId?format=json', {}, {});
        });
        .factory('OrderItem', function($resource) {
            return $resource('/api/v1/OrderItem/:orderitemId?format=json', {}, {});
        });

我在 get Order 上尝试了一个回调函数来加载 OrderItems,但没有奏效。


有一个非常相似的问题,但它已经过时了:Angular.js 中的 $resource 关系

4

2 回答 2

4

您可以将函数包装在另一个获取订单项的函数中吗?

myApp.factory('Order', function($resource) {
  var res = $resource('/api/Order/:orderId', {}, {
    '_get': { method: 'GET' }
  });

  res.get = function(params, success, error) {
    return res._get(params, function(data) { 
      doOrderItemStuff();
      success(data);
    }, error);
  }
  return res;
}
于 2012-06-16T20:39:42.813 回答
0

在安迪回答之前,我正在控制器中解决它。为此,只需添加:

function OrderCtrl($scope, $routeParams, $resource, Order, OrderItem) {

    $scope.order = Order.get({
        orderId : $routeParams.orderId
    }, function(order) {
                doOrderItemStuff();
    });

}
于 2012-06-17T22:54:24.563 回答