angular雙向綁定詳解
雙向綁定原理
雙向綁定將屬性綁定與事件綁定結(jié)合在一起。
Angular 的雙向綁定語(yǔ)法是方括號(hào)和圓括號(hào)的組合 [()]。
[] 進(jìn)行屬性綁定,() 進(jìn)行事件綁定。
名稱(chēng)規(guī)則為 [輸入名] + Change。
- 屬性綁定(@
Input-輸入) - 設(shè)置特定的元素屬性。 - 事件綁定(@
Output-輸出) - 偵聽(tīng)元素更改事件。
所以表單雙向綁定中有 ngModel 和 ngModelChange,也可以自定義雙向綁定屬性。
ngModel
與表單元素進(jìn)行雙向綁定
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-bind',
template: `
<div>
<div>Name: {{ name }}</div>
<input type="text" style="width: 300px;" nz-input name="name" [(ngModel)]="name" autocomplete="off">
</div>
`
})
export class BindComponent implements OnInit {
name = '';
constructor() { }
ngOnInit(): void { }
}
效果圖

自定義雙向綁定屬性
組件-html
<div>
<div>inner: {{ value }}</div>
<input style="width: 300px;" nz-input (input)="onInput(input.value)" #input autocomplete="off">
</div>
組件-ts
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
@Component({
selector: 'app-inner',
templateUrl: './inner.component.html',
styleUrls: ['./inner.component.scss']
})
export class InnerComponent implements OnInit {
// 設(shè)定輸入屬性
@Input() value!: string;
// 設(shè)定輸出事件
@Output() valueChange: EventEmitter<string> = new EventEmitter();
constructor() { }
ngOnInit(): void { }
onInput(value: string){
// 觸發(fā)輸出事件-輸出數(shù)據(jù)
this.valueChange.emit(value);
}
}
外部使用
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-outer',
template: `
<div>
<div>Name: {{ name }}</div>
<app-inner [(value)]="name"></app-inner>
</div>
`
})
export class OuterComponent implements OnInit {
name = '';
constructor() { }
ngOnInit(): void { }
}
效果圖

總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Angularjs自定義指令實(shí)現(xiàn)分頁(yè)插件(DEMO)
由于最近的一個(gè)項(xiàng)目使用的是angularjs1.0的版本,涉及到分頁(yè)查詢數(shù)據(jù)的功能,后來(lái)自己就用自定義指令實(shí)現(xiàn)了該功能,下面小編把實(shí)例demo分享到腳本之家平臺(tái),需要的朋友參考下2017-09-09
Angular應(yīng)用tsconfig.json中的lib屬性示例解析
這篇文章主要介紹了Angular應(yīng)用tsconfig.json中的lib屬性示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
AngularJS基礎(chǔ) ng-mouseover 指令簡(jiǎn)單示例
本文主要介紹AngularJS ng-mouseover 指令,這里幫大家整理了AngularJS 指令的基礎(chǔ)知識(shí),并附代碼示例,有興趣的小伙伴可以參考下2016-08-08
Angular.js與node.js項(xiàng)目里用cookie校驗(yàn)賬戶登錄詳解
這篇文章主要介紹了Angular.js與node.js項(xiàng)目里用cookie校驗(yàn)賬戶登錄的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-02-02
ionic3實(shí)戰(zhàn)教程之隨機(jī)布局瀑布流的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于ionic3實(shí)戰(zhàn)教程之隨機(jī)布局瀑布流的實(shí)現(xiàn)方法,文中通過(guò)示例代碼和圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
Angular中ng-template和ng-container的應(yīng)用小結(jié)
Angular的日常工作中經(jīng)常會(huì)使用到ng-template和ng-container,本文對(duì)他們做一個(gè)總結(jié),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-06-06
Angularjs在360兼容模式下取數(shù)據(jù)緩存問(wèn)題的解決辦法
這篇文章主要為大家詳細(xì)介紹了Angularjs在360兼容模式下取數(shù)據(jù)緩存問(wèn)題的解決辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
使用AngularJS對(duì)表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法
AngularJS是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。下面通過(guò)本文給大家分享使用AngularJS對(duì)表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法,需要的的朋友參考下吧2017-07-07

