溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Angular4學習教程之DOM屬性綁定詳解

發布時間:2020-09-13 21:17:42 來源:腳本之家 閱讀:206 作者:Wayfreem 欄目:web開發

前言

DOM 元素觸發的一些事件通過 DOM 層級結構傳播,事件首先由最內層的元素開始,然后傳播到外部元素,直到它們到根元素,這種傳播過程稱為事件冒泡。本文主要介紹了關于Angular4 DOM屬性綁定的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

簡介

使用插值表達式將一個表達式的值顯示在模版上

<img src="{{imgUrl}}" alt="">
<h2>{{productTitle}}</h2>

使用方括號將HTML標簽的一個屬性值綁定到一個表達式上

<img [src]="imgUrl" alt="">

使用小括號將組件控制器的一個方法綁定到模版上面的一個事件的處理器上

<button (click)="onClickButton($event)">按鈕綁定事件</button>

注意

在開始下面的例子之前,請先確認已經新建了一個工程。如果沒有,請查看:Angular2學習筆記之Angular CLI 安裝和使用教程

事件綁定

Angular4學習教程之DOM屬性綁定詳解

準備工作

了解目的:在模版的界面上面增加一個按鈕,然后通過小括號綁定一個事件。

新建一個 bind 組件,使用命令:  ng g c bind

修改 bind.component.html

<!-- 界面增加代碼 -->
<button (click)="onClickButton($event)">按鈕綁定事件</button>

修改 bind.component.ts

//在 BindComponent 類方法中增加方法體
onClickButton(event: any){
 console.log(event);
}

修改 app.component.html

<!-- 增加 app-bind 組件 -->
<app-bind></app-bind>

圖示:

Angular4學習教程之DOM屬性綁定詳解

Dom屬性綁定

例子一

插值表達式 與 屬性綁定 之間的關系

兩種方式都可以實現,angular 在實現的邏輯上面是: 在程序加載組件的時候,會先將 "插值表達式" 翻譯為 "屬性綁定"

修改 bind.component.html

<!-- 界面增加代碼 -->
<!-- 屬性綁定 -->
<img [src]="imgUrl" alt="">
<!-- 插值表達式綁定 -->
<img src="{{imgUrl}}" alt="">

修改 bind.component.ts

//增加變量
imgUrl: string = http://placehold.it/320x280;

圖示:

Angular4學習教程之DOM屬性綁定詳解

例子二

dom 屬性 與 html 屬性的區別

HTML元素的 DOM屬性和 HTML 屬性是有部分區別的,這點需要明確差異。

修改 bind.component.html

<!-- 增加代碼 -->
<div>
 <input type="text" value="Tom" (input)="onInputEvent($event)">
</div>

修改 bind.component.ts

//增加 event事件
onInputEvent(event: any){
 //獲取的是 dom 屬性,即輸入屬性
 console.log(event.target.value);
 //獲取的是 html 屬性,也就是初始化的屬性
 console.log(event.target.getAttribute("value"));
}

圖示:

Angular4學習教程之DOM屬性綁定詳解

小結:

      1.少量的 HTML屬性和 DOM屬性之間有這 1 :1 的映射關系,如 :id

      2.有些有 HTML屬性,沒有DOM 屬性, 如:colspan

      3.有些有 DOM屬性,沒有HTML 屬性,如:textContent

      4.就算名字一樣,DOM屬性和HTML屬性獲取的內容可能不一樣

      5.模版綁定是通過DOM屬性綁定的,而不是通過HTML屬性

      6.HTML屬性指定了初始值,DOM屬性表示當前值;DOM屬性的值可以改變,HTML的值不能改變

例子部分完整代碼

bind.component.html

<p>
 bind works!
</p>
<button (click)="onClickButton($event)">按鈕綁定事件</button>
<div>
 <!-- 屬性綁定 -->
 <img [src]="imgUrl" alt="">

 <!-- 插值表達式綁定 -->
 <img src="{{imgUrl}}" alt="">
</div>
<div>
 <input type="text" value="Tom" (input)="onInputEvent($event)">
</div>

bind.component.ts

import { Component, OnInit } from '@angular/core';
@Component({
 selector: 'app-bind',
 templateUrl: './bind.component.html',
 styleUrls: ['./bind.component.css']
})
export class BindComponent implements OnInit {
 imgUrl: string = "http://placehold.it/320x280";
 constructor() { }
 ngOnInit() {
 }
 onClickButton(event: any){
 console.log(event);
 }
 onInputEvent(event: any){
 //獲取的是 dom 屬性,即輸入屬性
 console.log(event.target.value);

 //獲取的是 html 屬性,也就是初始化的屬性
 console.log(event.target.getAttribute("value"));
 }
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女