导航:首页 > 净水问答 > angularjs过滤器原理

angularjs过滤器原理

发布时间:2023-03-23 15:14:34

㈠ angularjs过滤器相关问题

先来看看这些内置过滤器使用方法:
一个过滤器,不带参数的情况
{{expression | filter}}

一个过滤器,带参数的情况
{{expression | filter:arguments}}

一个过滤器,带多个参数的情况
{{expression | filter: arg1: arg2: ...}}

多个过滤器,不带参数的情况
{{expression | filter1 | filter2 | ...}}

下面我们分别使用以下AngularJS的内置过滤器
currency

currency允许我们设置自己的货币符号,默认情况下会采用客户端所处区域的货币符号。
可以这样使用:{{ 3600 | currency: "$¥"}}
返回结果为$¥123.00
online code点击预览

number

number过滤器将数字格式化成文本,它的参数是可选的,用来控制小数点后的截取位数
如果传入的是一个非数字字符,会返回空字符串
可以这样使用:{{ 3600 | number:2}}
返回结果为:3,600.00
online code点击预览

lowercase

lowercase将字符串转换为小写
可以这样使用:{{ "HEllo" | lowercase}}
返回结果为:hello
online code点击预览

uppercase

uppercase将字符串转换为大写
可以这样使用:{{ "HEllo" | uppercase}}
返回结果为:HELLO
online code点击预览

json

json过滤器可以将一个JSON或者JavaScript对象转换成字符串。
这个过滤器对调试相当有用
可以这样使用:{{ {"name":"dreamapple","language":"AngularJS"} | json}}
返回结果为:{ "name": "dreamapple", "language": "AngularJS" }
online code点击预览

date

date过滤器将日期过滤成你想要的格式,这个实在是很好的过滤器。
这个过滤器用法很多我这里列举几种常用的
{{ today | date: "yyyy - mm - dd"}}
结果为:2015 - 15 - 13
{{ today | date: "yyyy - mm - dd HH:mm::ss"}}
结果为:2015 - 18 - 13 20:18::38
[online code](2015 - 18 - 13 20:18::38)

还有三个内置的过滤器,但是使用稍微复杂一点,放在下一篇文章中我们大家一起探讨吧

㈡ 为什么AngularJS货币过滤器格式负数用括号

AngularJS的filter,中文名“过滤器”是用来过滤变量的值,或者格式化输出,得到自己所期望的结果或格式的东东。工具/原料AngularJS脚本库IDE一、在视图模板(ViewTemplate)中使用在表达式中应用Filters(过滤器)需要遵循格式如下:{{

㈢ angularjs自定义过滤器怎么写

过滤器(filter)正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回处回理后的结果。主要答用在数据的格式化上,例如获取一个数组中的子集,对数组中的元素进行排序等。ng内置了一些过滤器,它们是:currency(货币)、date(日期)、filter(子串匹配)、json(格式化json对象)、limitTo(限制个数)、lowercase(小写)、uppercase(大写)、number(数字)、orderBy(排序)。总共九种。除此之外还可以自定义过滤器,这个就强大了,可以满足任何要求的数据处理。
AngularJS中为我们提供了一些内置的过滤器,这里列举一些自定义过滤器的场景。

㈣ 使用Angularjs过滤器如何实现动态搜索

利用angularjs实现动态的插入以及利用过滤稿消卖器进行数据桥皮的搜索以及排序:

㈤ 如何在angularjs的自定义指令内部定义自定义过滤器

实现方携胡式销闭
下面看一下如何定义声明一个过滤器,首先依然是要创建我们自己的模块myAppMole
var myAppMole = angular.mole("myApp",[]);

接下来在模块的基础上,辩斗拦创建过滤器:
myAppMole.filter("reverse",function(){

});

其中reverse是过滤器的名字,后面跟着过滤器的方法声明,在方法中返回另一个方法:

myAppMole.filter("reverse",function(){
return function(input,uppercase){
var out = "";
for(var i=0 ; i<input.length; i++){
out = input.charAt(i)+out;
}
if(uppercase){
out = out.toUpperCase();
}
return out;
}
});

内部返回的方法包含了两个参数,一个是输入的值,就是我们过滤器接受的值。
如果想要实现下面的过滤器:
name | reverse

则input就是其中name代表的值。
后面的参数是可选的,我们这里接受uppercase这个bool值,判断是否要进行大小写转换。
内部实现的代码,就没必要解释了。最后返回过滤后的字符串即可。

㈥ angularjs中undefined怎么判断

AngularJS表达式类似Javascript的代码片段,通常在数据绑定源销中用到,写在双大括号中,如:{{表达式}}。表达式是用$parse方法来处理的。

下面是一些合法的AngularJS表达式

1+2
3*10 | currency
user.name
你可能会认为AngularJS视图中的表达式就是Javascript表达式,这种认识不完全对,因为AngularJS不会用Javascript的eval()函数去执行表达式。 不过除了以下几个需含绝要区别的地方以外,你可以把AngularJS表达式看成是Javascript表达式:

属性表达式:属性表达式对应于当前的作用域,不像Javascript对应的是全局的window对象。
允许未定义值:执行表达式时,AngularJS能够允许undefined或者null,不像Javascript会抛出一个异常。
没有控制结构: 你不能在AngularJS表达式中使用“条件判断”、“循环”、“抛出异常”等控制结构。
过滤器(类似unix中的管道操作符): 你可以通过过滤器链来传递表达式的结果。例如将日期对象转变成指定的阅读友好的格谈裂姿式。
如果你想要在表达式中使用标准的Javascript,那么你应该把它写成一个控制器的方法,然后在表达式中调用这个方法。如果你想在Javascript中执行AngularJS表达式,你可以使用$eval()方法。

举个例子:

<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/angular-1.0.2.min.js"></script>
<script>
function Cntl2($scope) {
var exprs = $scope.exprs = [];
$scope.expr= '3*10|currency';
$scope.addExp= function(expr) { //在控制器里面定义了一个addExp方法,在这个方法中,使用的是标准的js代码
exprs.push(expr);
};
$scope.removeExp= function(index) {
exprs.splice(index,1);
};
}
</script>
</head>
<body>
<div ng-controller="Cntl2" class="expressions">
Expression:
<input type='text' ng-model="expr" size="80"/>
<button ng-click="addExp(expr)">Evaluate</button>
<ul>
<li ng-repeat="expr in exprs">
[<a href="" ng-click="removeExp($index)">X</a> ]
<tt>{{expr}}</tt> => <span ng-bind="$parent.$eval(expr)"></span> //这里的expr是在js中,如果想运行此angular表达式,就调用$eval。
</li>
</ul>
</div>
</body>
</html>

属性表达式

属性表达式计算是发生在作用域中的。Javascript默认是以window为作用域的。AngularJS要使用window作用域的话得用$window来指向全局window对象。 比如说,你使用window中定义的alert()方法,在AngularJS表达式中必须写成$window.alert()才行。

举个例子:

<!doctype html>
<html ng-app>
<head>
<script src="www.hbbz08.com //code.angularjs.org/angular-1.0.2.min.js"></script>
<script>
function Cntl1($window, $scope){
$scope.name = 'World';
$scope.greet = function() {
($window.mockWindow || $window).alert('Hello ' + $scope.name);
}
}
</script>
</head>
<body>
<div class="example2" ng-controller="Cntl1">
Name: <input ng-model="name" type="text"/>
<button ng-click="greet()">Greet</button>
</div>
</body>
</html>
允许未定义值
表达式在执行时是可以允许undifined和null的。 在Javascript中,计算a.b.c会抛出一个异常,如果这不是一个对象的话。但是如果大多数时候表达式是用来作数据绑定的,像下面这种形式:

{{a.b.c}}
那么表达式返回一个空值会比触发异常更有意义。因为通常我们是在等待服务器的响应,并且变量马上就会被定义和赋值。如果表达式不能容忍未定义的值,那么我们绑定的代码就不得不写成形如:

{{((a||{}).b||{}).c}}
angular在执行未定义的函数a.b.c()是,也会返回undefined,不会触发异常。

没有流程控制结构

你不能在表达式中使用控制结构。这样设计的原因在于AngularJS的设计理念之一就是逻辑代码都应该在控制器里。如果你需要使用条件、循环、或者处理异常,你就应该写在控制器的方法里。

过滤器

当你将数据呈献给用户时,你很可能需要将数据转换为阅读友好的格式。比方说,你可能需要在显示之前将一个日期对象转换为用户本地的时间格式。你可以用链式的过滤器来传递表达式,像下面这样:

name | uppercase
这个表达式会将name的值传递给uppercase这个过滤器。

链式过滤器使用的是下面这样的语法:

value | filter1 | filter2
你也可以通过冒号来给过滤器传递参数,比如,将123显示成带有两位小数的形式:123 | number:2

$符号

你可能会好奇,这个$的前缀有什么用?其实这只是一个标记AngularJS专有属性的符号,用来表示区别于开发者自定义属性的符号。

AngularJS的设计是在已有的对象上添加行为。使用$做前缀的话,就能使得开发者的代码和AngularJS的代码和谐共处了。

㈦ angularjs 控制器中怎样使用过滤器

内置过滤器也可以在js文件中使用,只要在angularjs组件定义时注入$filter组件,即可在内代码中使用过容滤器。
app.controller('testC',['$scope','$filter',function($scope,$filter){
$scope.num = $filter('currency')(123534);
$scope.date = $filter('date')(new Date());
]}

㈧ angularjs $filter过滤器问题

推荐使用angular-ui-grid:
controller:
varapp=angular.mole('app',['ngTouch','ui.grid','ui.grid.pagination']);

app.controller('MainCtrl',['$scope','$http',function($scope,$http){
$scope.gridOptions1={
paginationPageSizes:[25,50,75],
paginationPageSize:25,
columnDefs:[
{name:'name'},
{name:'gender'},
{name:'company'}
]
};
}]);

html:
<divui-grid="gridOptions1"ui-grid-paginationclass="grid"></div>

㈨ Angularjs过滤器使用详解

给大家介绍下什么是
AngularJS?
AngularJS是一个为动态WEB应用设计的结构框架。它能让你使用HTML作为模板语言,通过扩展HTML的语法,让你能更清楚、简洁地构建你的应用组件。它的创新点在于,利用󰀃数据绑定󰀃和󰀃依赖注入,它使你不用再写大量的代码了。这些全都是通过浏览器端的Javascript实现,这也使得它能够完美地和任何服务器端技术结合。
AngularJS是为了克服HTML在构建应用上的不足而设计的。HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了。所以我做了一些工作(你也可以觉得是小花招)来让浏览器做我想要的事。
AngularJS提供了过滤器来对输入输出数据格式化。下面开始给大家介绍Angularjs过滤器使用,一起看看吧
•在html文件中和在js文件中使用
$scope.form_time
=
$filter('date')($scope.time,
'yyyy-MM-dd
HH:mm:ss');
<p>{{time
|
date:
'yyyy-MM-dd
HH:mm:ss'}}</p>
•内部过滤器和自定义过滤器
.filter('my_data_format',[function(){
return
function(data,str,sss){
console.log('data:
',data,'
str:
',str,'
sss:
',arguments[2]);
}
}]);
//var1就是第一个参数data,
123是第二个参数str,
this是第三个参数
<p>{{var1
|
my_data_format
:
123
:
'this'}}</p>
//对传入的数据进行处理
.filter('my_data_format',[function(){
return
function(data,str){
var
arr=[];
angular.forEach(data,
function(one_list){
if(one_list.status
==
str){
arr.push(one_list);
}
});
return
arr;
}
}]);
//过滤器可以用在绑定的值中,也可以用在ng-if="(lists
|
my_data_format:
'2').length>0",
和ng-show等;类似的表达式中。作为判断语句
<p
ng-repeat
=
"list
in
lists">姓名:{{list.name}},人数{{(lists
|
my_data_format:
'2').length}}</p>

㈩ angularjs中有多个过滤器使用方法

一、在视图模板(View Template)中使用
在表达式中应用Filters (过滤器)
需要遵循格式如下:
{{ expression | filter }} 即 {{ 表达式 | 过滤器 }}
例如:{{ 12 | currency }} 输出为 $12.00在输出结果中应用Filters (过滤器)
通俗点讲就是Filter的叠加--前一filter的输出结果作为后一filter的输入数据源.
需要遵循格式如下:
{{ expression | filter1 | filter2 | ... }} 即 表达式(expression)使用filter1过滤后再使用filter2过滤...
带参数的Filter
Filter后面可以跟一个或多个参数,用来帮助实现特殊要求、需求的filter.
需要遵循格式如下:
{{ expression | filter:argument1:argument2:... }}
示例: {{ 1234 | number:2 }} = 1,234.00END
二、使用 AngluarJS 内置Filter
AngularJS为我们提供了9个内建的过滤器
分别是currency, date, filter, json, limitTo, uppercase, lowercase, number, orderBy。
具体的用法在AngularJS的文档中都有详细说明。下面只说几个常用的。
currency filter(货币过滤器)
currency – 用来将变量转换成货币表现形式
如:{{ amount | currency}}
uppercase/lowercase filter(字母大小写filter)如:
{{ "lower cap string" | uppercase }}
<input ng-model="userInput"> Uppercased: {{ userInput | uppercase }}
date filter (日期filter)
如:
{{ 1304375948024 | date }}
{{ 1304375948024 | date:"MM/dd/yyyy @ h:mma" }}
json filter
如:
{{ {foo: "bar", baz: 23} | json }}
END
在controllers, services和drictives中使用filter1可以在AngularJS的controller, service或者driective中使用filter, 这时候你需要将依赖的filter名字加入到controller, service或者directive的依赖中去。
2在controller中直接使用filter, 这样controller可以根据自身需要而适时调用filterEND
三、自定义filter(过滤器)
1AngularJS编写自定义过滤器的形式和AngularJS的factory service非常相像,一定记得它返回一个对象或者是一个函数即可,编写的时候,只需要一个带有一个以上参数的函数即可。
2格式大致如:
app.filter('filter(过滤器)名称',function(){return function(需要过滤的对象,过滤器参数1,过滤器参数2,...){//...执行业务逻辑代码return 处理后的对象;
}
});

阅读全文

与angularjs过滤器原理相关的资料

热点内容
怎么联系污水处理厂 浏览:247
工业用水的水垢怎么清理 浏览:625
邢台沁园净水器加盟多少钱 浏览:629
净水机排不排废水有什么区别 浏览:586
印刷污水处理费多少钱一吨 浏览:518
blueair净化器的wifi怎么连接 浏览:535
海尔热水器过滤网清洗图解 浏览:675
工业甘油蒸馏设备 浏览:159
工业废水主要污染有哪些 浏览:901
涂料级PMP树脂 浏览:244
屈臣氏蒸馏水是几蒸 浏览:810
东莞雨水收集回用系统采购 浏览:392
车都有什么滤芯儿 浏览:897
饮水机不会上水怎么办 浏览:570
污水碳氮磷比是什么 浏览:14
ge阴离子交换柱百度文库 浏览:654
电解池负离子去哪里 浏览:69
污水格栅机一台多少钱 浏览:692
污水脱氮怎么去除 浏览:206
陶氏反渗透膜标志 浏览:438