我爱编程

Angular 2.0+的数据绑定

2017-09-16  本文已影响0人  心安1226

前言

我们使用如下的组件代码进行文本的所有演示

export class AppComent{
angularLogo = 'https://angular.io/assets/images/logos/angular/angular.svg';
userName='David';
netItem(){
console.log("Hello world!");
}
}

组件到DOM-Component to DOM

属性绑定,单向数据绑定,可以有下面三种不同的书写方式

![]({{angular Logo}})
<img [src]="angular Logo">
![](angular Logo)

1.使用字符串插值方式。{{变量名}}
2.使用方括号[ ],方括号内包含属性名。
3.在属性名添加bind- 也可以达到同样的效果。

DOM到组件-DOM to Component

事件绑定,当发生特定的DOM事件(例如:click,change,keyup),调用组件中指定方法。在下面的示例中,单机按钮时调用该组件的newItem()方法;

<button (click)="newItem()"></button>

双向数据绑定

使用[(ngModel)]="变量名"方式,可以实现双向数据绑定

<input type="text" [(ngModel)]="userName">
<h1 Hello {{userName!}}></h1>

从Angular 2.x开始,Angular中的数据绑定真的只是归结为属性绑定和事件绑定。双向绑定是不存在的东西。如果没有ngModel指令,我们如何实现数据双向绑定?如下所示:

<input [value]="username" (input)="username = $event.target.value">
<p>Hello {{username}}!</p>

我们来看看这里面发生了什么?

-[value]="username"-绑定变量usernameinput元素的value属性
-input="username=$event.target.value"-绑定input元素的input事件到js代码username=$event.target.value
-$event-在Angular的事件绑定中暴露的表达式,它的值为事件的载体

上一篇 下一篇

猜你喜欢

热点阅读