javascript - 如何使用 AngularJS $filter 在 Controller 中订购 JSON 数据

标签 javascript angularjs json angularjs-filter

我在 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/

相关文章:

Javascript 解析 Facebook 登录问题

javascript - jQuery :empty not working with input

javascript - $http.post 400 服务器上的空 json 正文

javascript - 有没有一种方法可以在输入框中设置从左对齐文本到居中对齐的过渡动画

javascript - React-native - 在组件之间传递值

javascript - Angular 10 $digest() 迭代达到

javascript - 将数据从 ng-Dialog html 传递到 Controller

c# - 在 C# 中使用嵌套数组反序列化 JSON

c# - 读取 JSON 字符串作为键值

javascript - crm 2011 中的 Json 和 Jquery