2013-03-16 60 views
2

我有一個可以返回訂單的寧靜服務。這個訂單有一個項目清單。我正在製作屏幕,您可以從訂單編輯特定項目。所以我需要有物品清單才能找到並顯示特定物品的信息。我解決它像這樣:

$scope.order = orderResource.get({id:$routeParams.orderId}, function(order) { 
    $scope.item = _.findWhere(order.items, {id:$routeParams.itemId}); 
}); 

與結合看起來像這樣:

<input id="itemName" type="text" ng-model="item.name"> 

我的問題是:這是解決這個問題的最好方法是什麼? (我不想使用具有解決方案的路由。)

+2

我不認爲有解決這種本地化和特定問題的「最佳途徑」。所以我的問題是:您的解決方案是否滿足您的要求? – Stewie 2013-03-16 18:06:40

+1

我認爲這個問題實際上適用於更廣泛的情況,而不僅僅是這個具體的例子。上面的代碼使用另一個庫(underscoreJs)來嘗試過濾和查找所需的數據。這感覺就像在大型應用程序中經常會遇到的情況一樣,我也很好奇,如果有更好的方法來與AngularJS做到這一點。 – 2013-03-16 18:54:27

+1

@JimCooper實際上聽起來更像是從API發送的數據結構需要被映射以適應UI。很明顯,使用'unexcore'是一種方便,但使用本地腳本或使用'angular.forEach'循環數據映射到新數組 – charlietfl 2013-03-16 23:58:00

回答

5

是的,您應該創建一個將返回特定項目的端點。一個例子GET端點可以

/orders/:id/items/:itemId

$scope.item = orderResource.get({id:$routeParams.orderId, itemId: $routeParams.itemId}); 

如果這是不可能的,你在做什麼,似乎罰款。

+0

這是一個好主意,但仍然不難。 – 2013-03-18 01:13:56