在AngularJS中定义隔离资源的常用方法是:
angular.service('TheService', function($resource){
return $resource('api/url');
});
我正在尝试找出编写与其他模型相关的模型的最佳方法,例如Order
有一个或多个OrderItem
s。我的第一个想法是:
OrderService
和OrderItemService
作为独立资源模型OrderService
并监视结果数组OrderItemService
并使用扩展信息装饰order
对象这看起来有点乱。有更优雅的方式吗?
答案 0 :(得分:18)
angular.service('OrderItem', function($resource) {
return $resource('api/url/orderItem');
});
angular.service('Order', function($resource, OrderItem) {
var Order = $resource('api/url/order');
Order.prototype.items = function(callback) {
return order.query({orderId: this.id}, callback);
}
return Order
});
上述内容会解决您的问题吗?然后你将它用作
var order, items;
Order.get({id: 123}, function(o) {
order = o;
o.items(function(is) { items = is; });
});
Angular的$资源不理解关系。我们希望在1.0之后改变这一点。
我认为您不应该直接将数据放在订单上,因为它不是订单的一部分,并且您将遇到问题,因为它现在也会有物品对象。