Angular|Angular 数据绑定
Angular 数据绑定
数据绑定
{{productTitlt}}!
使用插值表达式将一个表达式的值显示在模版上。
文章图片
Angular
会将插值表达式翻译为对应的属性绑定。
HTML属性和DOM属性的关系
- 少量HTML属性和DOM属性之间有着1:1的映射,如id。
- 有些HTML属性没有对应的DOM属性,如colspan。
- 有些DOM属性没有对应的HTML属性,如textContent。
- 就算名字相同,HTML属性和DOM属性也不是同一样东西。
- HTML属性的值指定了初始值;DOM属性的值表示当前值。
- DOM属性的值可以改变;HTML属性的值不能改变。
- 模版绑定是通过DOM属性和事件来工作的,而不是HTML属性。
基本HTML属性绑定
Something
CSS类绑定
something
something
样式绑定
双向绑定
bind works!
{{name}}
响应式编程 观察者模式与Rxjs
var subscription = Observable.from([1,2,3,4])
.filter((e) => e%2 == 0)
.map((e) => e*e)
.subscribe(
e => console.log(e),
error => consile.error(error),
() => console.log("end!")
);
- 可观察对象Observable(流):表示一组值或者事件的集合。
- 观察者Observer:一个回调函数集合,它知道怎么去监听被Observable发送的值。
- 订阅Subscription:表示一个可观察对象,主要用于取消注册。
- 操作符Operators:纯粹的函数,使开发者可以以函数编程的方式处理集合。
模版本地变量
bind works!
{{value}}
模版本地变量必须使用#号来声明,也就是这里的
#myField
。这样的话方法就不用再传递event
对象了。管道
bind works!
我的生日是:{{birthday | date | uppercase}}
在组件中添加
birthday
元素。private birthday: Date = new Date();
通常我们需要使用管道实现对数据的格式化,Angular4中的管道和之前有了一些变化,下面说一些常用的管道。
大小写转换管道
uppercase
将字符串转换为大写lowercase
将字符串转换为小写将字符串转换为大写{{str | uppercase}}
str:string = 'hello';
页面上会显示
将字符串转换为大写HELLO
日期管道
date
日期管道符可以接受参数,用来规定输出日期的格式。现在的时间是{{today | date:'yyyy-MM-dd HH:mm:ss'}}
today:Date = new Date();
页面上会显示现在的时间是2017年05月08日10时57分53秒
小数管道
number
管道用来将数字处理为我们需要的小数格式接收的参数格式为{最少整数位数}.{最少小数位数}-{最多小数位数}
其中最少整数位数默认为1
最少小数位数默认为0
最多小数位数默认为3
当小数位数少于规定的{最少小数位数}时,会自动补0
当小数位数多于规定的{最多小数位数}时,会四舍五入
圆周率是{{pi | number:'2.2-4'}}
pi:number = 3.14159;
页面上会显示
圆周率是03.1416
货币管道
currency
管道用来将数字转换为货币格式{{a | currency:'USD':false}}
{{b | currency:'USD':true:'4.2-2'}}
a:number = 8.2515
b:number = 156.54812
页面上将显示
USD8.25
0156.55
这里的′USD′是美元UnitedStatesdollar的缩写,当为false时不显示0156.55这里的′USD′是美元UnitedStatesdollar的缩写,当为false时不显示符,当为true时,则显示$符。后面的规定小数位数的参数和上面介绍的一样。自定义管道
创建
pipe
组件ng g pipe pipe/multiple
multiple.pipe.ts
import {Pipe, PipeTransform} from '@angular/core';
@Pipe({
name: 'multiple'
})
export class MultiplePipe implements PipeTransform {transform(value: number, args?: number): any {
if (!args) {
args = 1;
}
return value * args;
}}
使用自己编写的管道。
bind works!
这是我输入的值:{{value | multiple}}
这时的默认系数是1,将系数改为3。
bind works!
这是我输入的值:{{value | multiple: '3'}}
【Angular|Angular 数据绑定】这样每次输出的值都是乘后的值。
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- angular2内置管道
- 使用协程爬取网页,计算网页数据大小
- Java|Java基础——数组
- Python数据分析(一)(Matplotlib使用)
- Jsr303做前端数据校验
- Spark|Spark 数据倾斜及其解决方案
- 数据库设计与优化
- 爬虫数据处理HTML转义字符
- 数据库总结语句