我正在尝试找出编写与其他模型相关的模型的最佳方法,例如具有1个或更多OrderItems的订单。
如何在加载订单时获取相应的OrderItem?
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
答案 0 :(得分: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;
}
答案 1 :(得分:0)
在Andy回答之前,我正在控制器中解决它。为此,只需添加:
function OrderCtrl($scope, $routeParams, $resource, Order, OrderItem) {
$scope.order = Order.get({
orderId : $routeParams.orderId
}, function(order) {
doOrderItemStuff();
});
}