Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

AngularJS 过滤器


可以在 AngularJS 中添加过滤器来格式化数据。


AngularJS 过滤器

AngularJS 提供过滤器来转换数据

  • currency 将数字格式化为货币格式。
  • date 将日期格式化为指定格式。
  • filter 从数组中选择一个子集。
  • json 将对象格式化为 JSON 字符串。
  • limitTo 将数组/字符串限制为指定数量的元素/字符。
  • lowercase 将字符串格式化为小写。
  • number 将数字格式化为字符串。
  • orderBy 按表达式对数组进行排序。
  • uppercase 将字符串格式化为大写。

将过滤器添加到表达式

可以使用管道字符 | 将过滤器添加到表达式,后跟一个过滤器。

uppercase 过滤器将字符串格式化为大写

示例

<div ng-app="myApp" ng-controller="personCtrl">

<p>名字是 {{ lastName | uppercase }}</p>

</div>
亲自尝试 »

lowercase 过滤器将字符串格式化为小写

示例

<div ng-app="myApp" ng-controller="personCtrl">

<p>名字是 {{ lastName | lowercase }}</p>

</div>
亲自尝试 »


将过滤器添加到指令

使用管道字符 | 将过滤器添加到指令(如 ng-repeat),后跟一个过滤器

示例

orderBy 过滤器对数组进行排序

<div ng-app="myApp" ng-controller="namesCtrl">

<ul>
  <li ng-repeat="x in names | orderBy:'country'">
    {{ x.name + ', ' + x.country }}
  </li>
</ul>

</div>
亲自尝试 »

货币过滤器

currency 过滤器将数字格式化为货币。

示例

<div ng-app="myApp" ng-controller="costCtrl">

<h1>价格: {{ price | currency }}</h1>

</div>
亲自尝试 »

在我们的 AngularJS 货币过滤器参考 中了解更多关于货币过滤器的信息


过滤器过滤器

filter 过滤器选择数组的一个子集。

filter 过滤器只能用于数组,并且它返回一个仅包含匹配项的数组。

示例

返回包含字母 "i" 的名称

<div ng-app="myApp" ng-controller="namesCtrl">

<ul>
  <li ng-repeat="x in names | filter : 'i'">
    {{ x }}
  </li>
</ul>

</div>
亲自尝试 »

在我们的 AngularJS 过滤器过滤器参考 中了解更多关于过滤器过滤器的信息


根据用户输入过滤数组

通过在输入字段上设置 ng-model 指令,我们可以在过滤器中使用输入字段的值作为表达式。

在输入字段中输入一个字母,列表将根据匹配项缩小/扩大

  • {{ x }}

示例

<div ng-app="myApp" ng-controller="namesCtrl">

<p><input type="text" ng-model="test"></p>

<ul>
  <li ng-repeat="x in names | filter : test">
    {{ x }}
  </li>
</ul>

</div>
亲自尝试 »

根据用户输入对数组进行排序

单击表头以更改排序顺序:

姓名 国家/地区
{{x.name}} {{x.country}}

通过在表头上添加 ng-click 指令,我们可以运行一个更改数组排序顺序的函数

示例

<div ng-app="myApp" ng-controller="namesCtrl">

<table border="1" width="100%">
  <tr>
    <th ng-click="orderByMe('name')">姓名</th>
    <th ng-click="orderByMe('country')">国家/地区</th>
  </tr>
  <tr ng-repeat="x in names | orderBy:myOrderBy">
    <td>{{x.name}}</td>
    <td>{{x.country}}</td>
  </tr>
</table>

</div>

<script>
angular.module('myApp', []).controller('namesCtrl', function($scope) {
  $scope.names = [
    {name:'Jani',country:'挪威'},
    {name:'Carl',country:'瑞典'},
    {name:'Margareth',country:'英国'},
    {name:'Hege',country:'挪威'},
    {name:'Joe',country:'丹麦'},
    {name:'Gustav',country:'瑞典'},
    {name:'Birgit',country:'丹麦'},
    {name:'Mary',country:'英国'},
    {name:'Kai',country:'挪威'}
  ];
  $scope.orderByMe = function(x) {
    $scope.myOrderBy = x;
  }
});
</script>
亲自尝试 »

自定义过滤器

可以通过使用模块注册新的过滤器工厂函数来创建自己的过滤器

示例

创建一个名为 "myFormat" 的自定义过滤器

<ul ng-app="myApp" ng-controller="namesCtrl">
  <li ng-repeat="x in names">
    {{x | myFormat}}
  </li>
</ul>

<script>
var app = angular.module('myApp', []);
app.filter('myFormat', function() {
  return function(x) {
    var i, c, txt = "";
    for (i = 0; i < x.length; i++) {
      c = x[i];
      if (i % 2 == 0) {
        c = c.toUpperCase();
      }
      txt += c;
    }
    return txt;
  };
});
app.controller('namesCtrl', function($scope) {
  $scope.names = ['Jani', 'Carl', 'Margareth', 'Hege', 'Joe', 'Gustav', 'Birgit', 'Mary', 'Kai'];
});
</script>
亲自尝试 »

myFormat 过滤器会将每隔一个字符格式化为大写。



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.