2012-06-14 66 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(); 
    }); 

}