博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Angular 绑定语法简介
阅读量:4288 次
发布时间:2019-05-27

本文共 2452 字,大约阅读时间需要 8 分钟。

一、绑定类型

数据绑定是一种机制,用来协调用户所见和应用数据。虽然我们能往HTML推送值或者从HTML拉去值,但如果把这些琐事交给数据绑定框架处理,应用汇更容易编写、阅读和维护。只要简单地碧昂丁源和目标HTML元素之间声明绑定,框架就会完成这项工作。

Angular绑定的类型根据数据流的方向分成三类:从数据源到视图从视图到数据源以及双向的从视图到数据源再到视图

数据方向

语法

绑定类型

单向

从数据源到视图目标

{
{
expression}}[target]="expression"bind-target="expression"

插值表达式

Property

Attribute

样式

单向

从视图目标到数据源

(target)="statement"on-target="statement"

事件

双向

[(target)]="expression"bindon-target="expression"

双向

注:除了插值表达式之外的绑定类型,在等号左边的是目标名,使用括号([],())绑定,或者使用前缀形式绑定(bind-,on-,bindon-)

模板绑定是通过property和事件来工作的,而不是attribute。

二、绑定目标

数据绑定的目标是Dom中的某些东邪。这个目标可能是(元素|组件|指令的)property、(元素|组件|指令的)事件,或attribute名。

绑定类型

目标

范例

Property

元素的 property

组件的 property

指令的 property

事件

元素的事件

组件的事件

指令的事件

click me

双向

事件与 property

Attribute

attribute(例外情况)

CSS 类

classproperty

Special

样式

styleproperty

1.属性绑定 ([属性名])

当要把视图元素的属性设置为模板表达式时,就要写模板的属性绑定.

常用的比如:img的src属性、表单按钮的disabled属性等。

2.attribute,calss和style绑定

模板语法为那些不太适合使用属性绑定的场景提供了专门的单向数据绑定形式。

attribute绑定:[attr.colspan]

One-Two...
CSS类绑定:
[class.class-name]

This one is not so special
样式绑定:
[style.style-property]

有些样式绑定中的样式带有单位。在这里,可以根据条件用“em”、“%”等设置字体大小等。

3.事件绑定 (
(事件名)
)

事件绑定语法有等号左侧带括号的目标事件和右侧引号的模板语句组成。

$event和时间处理语句

绑定会通过名叫$event的事件对象传递关于此时间的信息(包括数据值).

事件对象的形态取决于目标时间。如果目标时间是原生DOM元素事件,$event是DOM事件对象,它有像target和target.value这样的属性。

也可以使用EventEmitter实现自定义事件,通常,指令使用Angular EventEmitter来触发自定义事件。

4.双向数据绑定 ( [(....)] )

双向绑定语法实际上是属性绑定和时间绑定的语法糖。

最常用的地方是表单提交处理.

再者用于不同组件之间的数据传递等

详细示例如下:

SizerCommponnet组件:

import { Component, OnInit, EventEmitter, Input, Output } from '@angular/core';@Component({  selector: 'my-sizer',  template: `  
`})export class SizerComponent implements OnInit { @Input() size: number | string; @Output() sizeChange = new EventEmitter
(); constructor() { } dec() { this.resize(-1); } inc() { this.resize(+1); } resize(delta: number) { this.size = Math.min(40, Math.max(8, +this.size + delta)); this.sizeChange.emit(this.size); } ngOnInit() { }}
在ModelComponnet组件中使用:

fontSize = 12;  changeSize() {    console.info(this.fontSize);  }
注:在当前组件使用其他组件,需要提前在主模块声明

@NgModule({  declarations: [    ModelComponent,    SizerComponent  ],  imports: [    BrowserModule,    FormsModule  ],  providers: [],  bootstrap: [    ModelComponent  ]})

更多:

你可能感兴趣的文章
PHP多个版本的分析解释
查看>>
20个非常有用的PHP类库
查看>>
PHP常用组件下载列表
查看>>
angular本地、远程数据循环
查看>>
AngularJS的五个超酷特性
查看>>
现在主流的免费手机号码归属地查询api接口
查看>>
Android 的动作、广播、种别等标识大全
查看>>
源码Action
查看>>
利用Action的常用Intent跳转
查看>>
Android Permission
查看>>
Notifaction安卓通知栏
查看>>
RingtoneManager铃声设置
查看>>
WifiManager设置
查看>>
PackageManager安装包管理
查看>>
Pixel,Bitmap,Drawable,Canvas,Paint,Matrix,BitmapDrawable,BitmapFactory图相关
查看>>
SQLLite常用代码
查看>>
Fragment
查看>>
android多线程,子线程与主线程的通信,下载的文件的显示
查看>>
王垠:对博士学位说永别
查看>>
王垠:人的价值
查看>>