我在 Controller 中有一个如下所示的数据数组
$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 来实现这一点吗?
最佳答案
使用 orderBy 过滤器
$scope.sampleArray = $filter('orderBy')($scope.sampleArray, function(item) { return $scope.order.indexOf(item.category);});
关于javascript - 如何使用 AngularJS $filter 在 Controller 中订购 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42251149/