Angular 2.0+ 的数据绑定

前言

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

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

组件到DOM - Component to DOM

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

  < img src="{{ angularLogo }}">
  < img [src]="angularLogo">
  < img bind-src="angularLogo">
  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的事件绑定中暴露的表达式,它的值为事件的载体。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 我们使用如下的组件代码进行文本的所有演示 export class AppComent{angularLog...
    心安1226阅读 273评论 0 1
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,088评论 0 29
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • 数据绑定为应用程序提供了一种简单一致的机制,来管理与协调数据的显示,以及数据值的变化。angular提供了多种数据...
    oWSQo阅读 742评论 0 1
  • 你身边会不会有这样一个人,他好像没有不开心的时候,他在所有人的面前永远扮演的是一个开心果的形象,他没有烦恼,从来不...
    也学会爱阅读 357评论 0 1