javascript - 按表排序

标签 javascript html angularjs

我有一个带有 ng-repeat 的表,如果用户选择其中一个过滤器,则必须根据该过滤器来容纳它,但是我遇到了根据该过滤器以降序方式容纳表的问题。如果用户选择“限制”,则表必须按限制排序,如果用户选择“余额”,则必须按余额排序

enter code here

//Select for filter
<div class="input-group">
        <select class="form-control" ng-model="vm.form.type"
        ng-options='option.value as option.name for option in vm.typeOptions'
        ng-change="vm.showButton(vm.form.type)">
        </select>
</div>

//Table
<tr ng-repeat="x in vm.baseData " >
            <td>{{x.Name}}</td>
            <td>{{x.Balance}}</td>
            <td>{{x.Limit}}</td>

</tr>


//Array Object
vm.baseData = [
      {'Name':"Aleatea", 'Balance':'$5,000.00','Limit':'$3,455.00'},
      {'Name':"Tiempo", 'Balance':'$34,754.00','Limit':'$2,234.00'},
      {'Name':"Seni", 'Balance':'$5,000.00','Limit':'$123.00'}
]

最佳答案

您可以动态定义数组中的属性,您的表将按该数组排序

ng-repeat="vm.baseData 中的 x | orderBy:vm.arr"

这是一个工作示例

angular.module("app",[]).controller("myCtrl", function(){

var vm = this;
vm.baseData = [
      {'Name':"Aleatea", 'Balance':'$5,000.00','Limit':'$3,455.00'},
      {'Name':"Tiempo", 'Balance':'$34,754.00','Limit':'$2,234.00'},
      {'Name':"Seni", 'Balance':'$5,000.00','Limit':'$123.00'},
      {'Name':"Seni", 'Balance':'$5,000.00','Limit':'$123.00'},
      {'Name':"Seni", 'Balance':'$6,340.00','Limit':'$143.00'}
];

vm.typeOptions = [{'name': 'Name', 'value': 'Name'}, {'name': 'Balance', 'value': 'Balance'}, {'name': 'Limit', 'value': 'Limit'}];

vm.orderFunc = function(){
  vm.arr = [];
  vm.arr.push(vm.type);
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app" ng-controller="myCtrl as vm">

<div class="input-group">
        <select class="form-control" ng-model="vm.type"
        ng-options='option.value as option.name for option in vm.typeOptions' ng-change="vm.orderFunc()">
        </select>
</div>

<div>
<table>
<tr ng-repeat="x in vm.baseData | orderBy:vm.arr">
            <td>{{x.Name}}</td>
            <td>{{x.Balance}}</td>
            <td>{{x.Limit}}</td>
</table>
</tr>
</div>
</div>

关于javascript - 按表排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48175146/

相关文章:

html - 在 Rails 中,我应该如何为任务应用程序实现状态字段 - 整数或枚举?

node.js - Protractor JS 预处理器

javascript - 如何使用带有复选框值的 ng-model?

html - Internet Explorer 9 中的语义 UI 2.0?

javascript - Angular ng-repeat 精确机

javascript - HashedModuleIdsPlugin 有什么作用?

javascript - 读取 JSON Ajax 响应?

javascript - React - 父级未将方法传递给子级

javascript - 期望从 promise 分配的值(Jest unittest)

html - 媒体查询不适用于 Iphone(Safari 和 Chrome)