filter,orderBy等过滤器

filter用法比较灵活(也增加了较高的复杂度),单独列出。

基本的用法:

<input type="text" class="search" ng-model="keyword" />

ng-repeat="item in items | filter:{name:keyword,done:false}" // 默认是and连接多个属性

ng-repeat="item in items | filter:{$:keyword,done:false}" // 表示只计入未完成的,$表示:or

$scope.doneSelect=function(item){ // 这个item是每一项而不是整个源数据(items)

return item.done && item.estimation>20;  // 返回true表示保留(而不是返回一个新数据源)

}

ng-repeat="item in items | filter:doneSelect"

统计技巧:

ng-repeat="item in filteredBacklog={backlog|filter:{$:criteria,done:false}}"

Total:{{filteredBacklog.length}}

书中建议这类代码应该放在控制器中(控制器中可以访问$filter),这样更容易实现单元测试。

-----------------------------------------------------------------------------------

orderBy的用法比较简单

<thead>
    <th ng-click="sort(‘name‘)">Name</th>
    <th ng-click="sort(‘desc‘)">Description</th>
</thead>
<tbody>
    <!--sortFiled: string 是排序的属性名-->
    <!--reverse: boolean true升序,false降序-->  <!--排序放在filter之后,是有原因的。相比过滤,排序要付出更大的代价-->
    <tr ng-repeat="item in filteredBacklog = (backlog | filter:criteria | orderBy:sortFiled:reverse)">
        <td>{{item.name}}</td>
        <td>{{item.desc}}</td>
        ...
    </tr>
</tbody>
$scope.sortField = undefined;
$scope.reverse = false;

$scope.sort = function(filedName) {
    if ($scope.sortField === filedName) {
        $scope.reverse = !$scope.reverse;
    } else {
        $scope.sortField = filedName;
        $scope.reverse = false;
    }
}

------------------------------------------------------------

从controller、filter(控制器、服务、其他过滤器)等中访问过滤器

// 第一种写法
angular.module(‘trimFilter‘, [])

.filter(‘trim‘, function($filter) {

    var limitToFilter = $filter(‘limitTo‘);

    return function(input, limit) {
        if (input.length > limit) {
            return limitToFilter(input, limit - 3) + ‘...‘;
        }
        return input;
    };
});
// 更好的写法(更易读、代码更少)
.filter(‘trimII‘, function(limitToFilter) {

    return function(input, limit) {
        if (input.length > limit) {
            return limitToFilter(input, limit - 3) + ‘...‘
        }
        return input;
    };
});
时间: 2024-10-28 11:32:06

filter,orderBy等过滤器的相关文章

Introducation of Servlet filter(servlet过滤器介绍 )

本文章向大家介绍Servlet Filter,主要包括 Servlet Filter使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下. 过滤器是一个可以转换请求或响应的标头和内容(或两者)的对象.过滤器与Web组件的不同之处在于过滤器通常不会自行创建响应.相反,过滤器提供可以“附加 ”到任何类型的Web资源的功能.因此,过滤器不应该对作为过滤器的Web资源有任何依赖性; 这样,它可以由多种类型的Web资源组成. 过滤器可以执行的主要任务如下. 查询请求

servlet/filter/listener/interceptor过滤器、监听器、拦截器区分

因为之前一直分不清过滤器和拦截器的区别,所以有了两者差不多的错觉,因此在这里总结下servlet/filter/listener/interceptor过滤器.监听器.拦截器. 在此之前先简单回顾下servlet: 概述:servlet是一种运行服务器端的java应用程序,它工作在客户端请求与服务器响应的中间层. 主要作用:在于交互式地浏览和修改数据,生成动态 Web 内容. 访问流程: 1,客户端发送请求至服务器端: 2,服务器将请求信息发送至 Servlet: 3,Servlet 生成响应内

Bloom Filter(布隆过滤器)

布隆过滤器(英语:Bloom Filter)是1970年由布隆提出的.它实际上是一个很长的二进制矢量和一系列随机映射函数.布隆过滤器可以用于检索一个元素是否在一个集合中.它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难. 如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定.链表.树.散列表(又叫哈希表,Hash table)等等数据结构都是这种思路.但是随着集合中元素的增加,我们需要的存储空间越来越大.同时检索速度也越来

【Filter】利用过滤器Filter解决post传递的编码问题与利用EL表达式简化参数传递

post传递的编码问题,解决的方式有两种,一种是修改Tomcat的配置文件,这种方式是我反对的,因为你并不能保证自己的工程在任意一个Tomcat都能跑,当然如果以后出现什么情况,处理修改Tomcat配置文件,没有别的的话,那么才修改也不迟,另一种是在页面取值之前使用: request.setCharacterEncoding("utf-8"); 本来这样没什么的,不就一行代码吗?但是在现在JSP编程不停强调页面绝对不能出现后端代码的趋势下,不能使用<[Jsp]使用Post与Get

Mina SSL Filter安全加密过滤器相关知识介绍

原文地址:Mina SSLFilter(Apahce Mina user guide Chapter11 SSL Filter) SslFilter过滤器是负责管理数据的加密和解密通过安全连接.每当你需要建立一个安全连接,或将现有的连接使它安全,你必须添加SslFilter过滤器链. 任何会话可以修改它的信息过滤器链,它允许使用协议像startTLS打开连接. 请注意,虽然这个名字包括SSL,SslFilter支持TLS.实际上,TLS已经支持取代SSL,但是由于历史原因,SSL仍然广泛使用.

Filter登录验证过滤器(全局)

通过Filter来定义一个登录验证过滤器,这是就不需要在每一个JSP页面添加判断用户合法性的代码了. 以下示例中包含了5个文件,一个是登录表单LoginForm.jsp,一个是登录判断页LoginConf.jsp, 一个是登录验证过滤器LoginFilter.java,一个是登录成功页面LoginSucess.jsp,一个是登录失败 页面Loginfailure.jsp. LoginForm.jsp 1 <%@ page language="java" import="

lucene的Filter查询的过滤器,

/* * Filter这个类的功能是实现对于查询的过滤器, * 对于用户搜索的,可以把保密的网站或者文档对用户不进行显示 * 例如: * 这里就是一个图书馆的查询系统,图书馆的有些珍贵资料是不予显示的. * 只有高级权限的(Advanced)的用户才可以显示 * * */ package filter; import java.io.IOException; import org.apache.lucene.analysis.standard.StandardAnalyzer; import o

D21_02_view过滤排序filter orderby

<Window x:Class="demo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:db="clr-namespace:StoreDatabase;assembly=StoreDatabase&q

AngularJS Filter(过滤器)用法

一.在视图模板(View Template)中使用 在表达式中应用Filters (过滤器) 需要遵循格式如下: {{ expression | filter }}        即         {{ 表达式 | 过滤器 }} 例如:{{ 12 | currency }}     输出为    $12.00 在输出结果中应用Filters (过滤器) 通俗点讲就是Filter的叠加--前一filter的输出结果作为后一filter的输入数据源. 需要遵循格式如下: {{ expression