我正在接收来自$stateParams
的数组,我希望用它来过滤另一个数组的内容。该数组包含一组练习的IDs
。我希望显示从$ stateParams中恢复的练习IDs
。
console.log
给了我一个很好的[1,2,3]
ID数组但是我需要过滤并显示与数组中的ID匹配的所有结果。
这是当前用于测试的控制器中保存的数据。
$scope.exerciseIds = $stateParams.exerciseIds;
$scope.singleProgrammes = [
{exerciseId: 1, exerciseName: 'Deadlift', image: 'img/deadlift.png'},
{exerciseId: 2, exerciseName: 'Squat', image: 'img/squat.png'},
{exerciseId: 3, exerciseName: 'Lunge', image: 'img/lunge.png'},
{exerciseId: 4, exerciseName: 'Snatch', image: 'img/snatch.png'},
{exerciseId: 5, exerciseName: 'Overhead Squat', image: 'img/overhead-squat.png'},
];
这是视图中的代码:
<ion-item class="item item-thumbnail-left" ng-repeat="programme in programmes| filter:exerciseID" href="#">
编辑
答案 0 :(得分:1)
在您看来:
<ion-item class="item item-thumbnail-left" ng-repeat="programme in programmes| filter: filterIds" href="#">
在你的控制器中:
// {{x|filter:filterIds}} will run this function once for each item in x
$scope.filterIds = function(item) {
if ( $stateParams.exerciseIds.indexOf( item.excerciseID ) > -1 ) {
return true; // the ID is in the array
} else {
return false; // the ID is not in the array
}
// Micro version:
// return ~$stateParams.exerciseIds.indexOf( item.excerciseID );
}
答案 1 :(得分:0)
这样的事情应该有效
<ion-item class="item item-thumbnail-left" ng-repeat="programme in programmes|
filter:doFilter(item)" href="#">
$scope.doFilter = function(item) {
return function(programme) {
// if programme.id in your list of ones to display
// return true
// else
// return false
};
};