资源描述:
《Angularjs中用法Filters详解_》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Angularjs中用法Filters详解_本文给大家总结了下在Angularjs的模板、掌握器、或者服务中用法Filters的方法,有需要的小伙伴可以参考下Filter作用就是接收一个输入,通过某个规章进行处理,然后给用户返回处理后的结果。Filter可以用在模板、掌握器、或者服务,同时也会很简单自定义一个Filter过滤器。在模板中用法FilterFilter可以用于在视图模板中用法一下语法表达式:{{expression
2、filter}}例如:格式{{12
3、currency}}是用法currency的filter用法,让数字12过滤为货币形式,结果是$12.00。Filte
4、r可以应用到另一个过滤的结果中。这就是所谓的“chaining”,用法语法如下:{{expression
5、filter1
6、filter2
7、...}}Filter中可能需要参数。语法为:{{expression
8、filter:argument1:argument2:...}}例如:格式{{1234
9、number:2}}是用法number的filter用法,将数字1234过滤为有两位小数点的数字,结果为:1,234.00。在controller、services、directives中用法filter你可以在controller、services、directives中用法filte
10、r。为此,你需要将依靠项名称注入到你的controller/service/directive中:filter;例如:一个过滤器是number,你就需要通过用法依靠注入numberFilter。注入的参数是一个函数,该函数将值作为第一个参数,然后用其次个参数来筛选参数。下面的例子用法了叫做filter的Filter过滤器。这个filter可以在subarrays的基础上削减arrays。也可以应用在视图模板的标记,就像:{{ctrl.array
11、filter:'a'}},这将为‘a'做一个全文搜索。然而,在视图模板中用法filter将会重新对每一个filter过滤,假如数组比较大
12、的会是加载多次的。因此下面的例子挺直调用在掌握器中的filter。通过这个,掌握器可以在需要是调用filter(例如:当后端数据加载时或者filter的表达式转变时)。index.html:divng-controller="FilterControllerasctrl"divAllentries:spanng-repeat="entryinctrl.array"{{entry.name}}/span/divdivEntriesthatcontainan"a":spanng-repeat="entryinctrl.filteredArray"{{entry.name}}/span
13、/div/divscript.js:angular.module('FilterInControllerModule',[]).controller('FilterController',['filterFilter',function(filterFilter){this.array=[{name:'Tobias'},{name:'Jeff'},{name:'Brian'},{name:'Igor'},{name:'James'},{name:'Brad'}];this.filteredArray=filterFilter(this.array,'a');}]);结果为:All
14、entries:TobiasJeffBrianIgorJamesBradEntriesthatcontainan"a":TobiasBrianJamesBrad创建自定义filters:编写自己的filter是特别简洁的:只需要在你的模块中注册一个新的filterfactory函数。在内部,这里用了filterProvider。这个factory函数应当返回一个新的filter函数并且将输入值作为第一个参数。任何过滤器参数都会作为附加参数传递到过滤器函数中。这个过滤器函数应当是一个单纯的函数。这意味着它应当stateless和idempotent。当输入的函数改变时,angula
15、r依靠这些属性并且执行filter。留意:filter的名称必需是有效的angular表达式标识符。例如uppercase或者orderBy。名字是不允许有特别的字符,如连字符和点是不允许的。假如你盼望你的过滤器著名称空间,那么你可以用法大写(myappSubsectionFilterx)或者下划线(myapp_subsection_filterx)。下面的示例filter是反写一个字符串。另外,它可以再加一个条件使字符串大写。index.htmldivng-controller