4

1 つ以上の OrderItem を持つ Order など、他のモデルに関連するモデルを作成する最善の方法を見つけようとしています。

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 をロードしようとしましたが、うまくいきませんでした。


非常によく似た質問がありますが、廃止されました: $resource Relations in Angular.js

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 に答える