我剛剛使用Angular,並且遇到了我正在處理的項目的特定部分。對於其中一個模板,我希望使用來自不同商店的JSON文件的信息來僅顯示有關用戶當前所在頁面的商店的信息。在AngularJS的Array中搜索特定對象的JSON文件
我想通過使用$ routeParams過濾商店(因爲商店ID是我如何做路由),但我的過濾器只是返回一個空數組。
我的路由看起來是這樣的:
myProto.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/home', {
templateUrl: 'partials/merchants.html',
controller: 'merchantListCtrl'
}).
when('/:merchantId', {
templateUrl: 'partials/deals.html',
controller: 'dealListCtrl'
}).
otherwise({redirectTo: '/home'});
}]);
我的服務讀取JSON文件看起來像這樣:
var rmnProtoServices = angular.module('rmnProtoServices', ['ngResource']);
merchantProtoServices.factory('Merchant', ['$resource',
function($resource){
return $resource('merchants/merchants.json', {}, {
query: {method:'GET', isArray:true}
});
}]);
我拉着形式JSON文件看起來是這樣的: [
{
"id": "kohls",
"name": "Kohls",
},
{
"id": "best-buy",
"name": "Best Buy",
}
]
最後我在控制器中運行的過濾器如下所示:
var merchants = Merchant.query();
$scope.merchant = $filter('filter')(merchants, {id: $routeParams.merchantId});
我想什麼它做的是恢復所有商家的陣列與該ID(我的下一步將是該數組中選擇的第一個對象,因爲它應該只包含一個單一的商家)。相反,它只是返回一個空數組。
我該如何去實際讓這個過濾器工作(或者是否有一些更好的方法,我應該使用)?
工作,謝謝! – 2014-09-25 13:26:42