我在控制器中有如下数据数组
$scope.sampleArray=[{
'title': 'SampleTitleOne',
'description': 'SampleDescriptionOne',
'category': 'Saving'
},
{
'title': 'SampleTitleTwo',
'description': 'SampleDescriptionTwo',
'category': 'Saving'
},
{
'title': 'SampleTitle3',
'description': 'SampleDescription3',
'category': 'Current'
},
{
'title': 'SampleTitleIV',
'description': 'SampleDescriptionIV',
'category': 'Current'
},
{
'title': 'SampleTitleFive',
'description': 'SampleDescriptionFive',
'category': 'Group'
},
{
'title': 'SampleTitleFive',
'description': 'SampleDescriptionFive',
'category': 'Group'
},
{
'title': 'SampleTitleFive',
'description': 'SampleDescriptionFive',
'category': 'Mixed'
},
{
'title': 'SampleTitleFive',
'description': 'SampleDescriptionFive',
'category': 'Other'
}];
我根据用户输入订购了上面的数组。假设用户输入数组是
$scope.order = ['Other', 'Group', 'Mixed', 'Saving', 'Current'];
应用过滤器后,输出应如下所示
$scope.sampleArray=[{
'title': 'SampleTitleFive',
'description': 'SampleDescriptionFive',
'category': 'Other'
},
{
'title': 'SampleTitleFive',
'description': 'SampleDescriptionFive',
'category': 'Group'
},
{
'title': 'SampleTitleFive',
'description': 'SampleDescriptionFive',
'category': 'Group'
},
{
'title': 'SampleTitleFive',
'description': 'SampleDescriptionFive',
'category': 'Mixed'
},
{
'title': 'SampleTitleOne',
'description': 'SampleDescriptionOne',
'category': 'Saving'
},
{
'title': 'SampleTitleTwo',
'description': 'SampleDescriptionTwo',
'category': 'Saving'
},
{
'title': 'SampleTitle3',
'description': 'SampleDescription3',
'category': 'Current'
},
{
'title': 'SampleTitleIV',
'description': 'SampleDescriptionIV',
'category': 'Current'
}];
有没有办法应用angular $ filter来实现这个目标?
答案 0 :(得分:1)
使用orderBy过滤器
$scope.sampleArray = $filter('orderBy')($scope.sampleArray, function(item) { return $scope.order.indexOf(item.category);});
答案 1 :(得分:0)
您应该检查orderBy过滤器并以某种方式更改其中的内容。