2012-06-14 53 views
4

我试图找出编写与其他模型相关的模型(如具有1个或多个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', {}, {}); 
     }); 

我试过一个回调函数获取订单加载OrderItems,但没有奏效。


有一个非常类似的问题,但它已经过时了:$resource relations in Angular.js

回答

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; 
} 
+0

似乎很有希望。我会尽快进行测试。谢谢。 – zVictor

0

在Andy的回答之前,我在Controllers中解决了这个问题。要做到这一点,只需添加:

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

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

}