在angular中,如何对使用过滤器显示的字段使用orderBy和ngRepeat,从而改变它们的实际内容
In angular, how to use orderBy with ngRepeat on fields that are displayed using filters, changing their actual content?
我正在使用ngRepeat迭代对象数组。对象有一个字段"teamId"。在迭代中,我使用类似于{{object.teamId | teamName}}
的过滤器来显示字段,其中teamName过滤器接受一个teamId并返回一个实际的团队名称。
我如何在ngRepeat中使用orderBy
过滤器来按团队名称而不是团队id订购数组,如果团队名称不是对象中的字段,而是过滤器的结果?
你没有。您需要预处理您的数据,以便您的对象包含一个团队名称属性,以便您可以基于它进行排序。过滤器只更改数据的显示,它不修改数据,因此orderBy不知道您更改的数据。
<div ng-repeat="option in options" >
{{ option | teamname }} <!-- filter changes the displayed value, not the data -->
</div>
//JS
angular.forEach($scope.options, function(index, value){ // or (value, index), I forget
$scope.options[index] = $filter('teamname',$scope.options, index+1); // (filtername, array, expression) //this is a hack and you can probably get a more efficient way to pass these params
});
//JS
$scope.options = $filter('teamname',$scope.options);
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 如何将ngrepeat下的ngmodel绑定到$scope
- Angular ngRepeat:重复错误(尽管没有重复的密钥)
- 为什么使用immutableJS我的状态没有改变
- JavaScript改变了双方的显示风格
- 改变所有<td>为特定的桌子点击颜色
- 如何按对象反转Angular ngRepeat的顺序's键,这些键是数字键
- 变量dos'即使我可以返回更新后的值,也不会改变
- jQuery更改变量值
- 爆米花改变来源
- innerHTML赢得't改变元素
- Javascript onclick更改变量值
- "改变“;列表头,然后继续处理列表
- 是否可以使用“;document.all”;在IE11中,而不改变每次使用
- 自动完成jquery;t使用ngmodel和ngrepeat(angular)
- 当偏移量改变时滚动顶部
- Angularjs改变路线;t加载数据(ngRepeat)
- 在angular中,如何对使用过滤器显示的字段使用orderBy和ngRepeat,从而改变它们的实际内容