export class AppComponent { angularLogo = 'https://angular.io/assets/images/logos/angular/angular.svg'; userName="David"; newItem() { console.log("Hello world!"); } }
组件到DOM - Component to DOM
属性绑定,单向数据绑定。可以有下面三种不同的书写方式。
![]({{ angularLogo }}) <img [src]="angularLogo"> ![](angularLogo)
使用字符串插值方式。 {{ 变量名 }}
使用方挎号 [] ,方挎号内包含属性名。
在属性名前添加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” - 绑定变量username 到input元素的value属性。
(input)=”username = $event.target.value” - 绑定input元素的input事件到js代码username = $event.target.value
$event - 在Angular的事件绑定中暴露的表达式,它的值为事件的载体。