angular雙向綁定詳解
雙向綁定原理
雙向綁定將屬性綁定與事件綁定結(jié)合在一起。
Angular 的雙向綁定語(yǔ)法是方括號(hào)和圓括號(hào)的組合 [()]。
[] 進(jìn)行屬性綁定,() 進(jìn)行事件綁定。
名稱規(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-09Angular應(yīng)用tsconfig.json中的lib屬性示例解析
這篇文章主要介紹了Angular應(yīng)用tsconfig.json中的lib屬性示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07AngularJS基礎(chǔ) ng-mouseover 指令簡(jiǎn)單示例
本文主要介紹AngularJS ng-mouseover 指令,這里幫大家整理了AngularJS 指令的基礎(chǔ)知識(shí),并附代碼示例,有興趣的小伙伴可以參考下2016-08-08Angular.js與node.js項(xiàng)目里用cookie校驗(yàn)賬戶登錄詳解
這篇文章主要介紹了Angular.js與node.js項(xiàng)目里用cookie校驗(yàn)賬戶登錄的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-02-02ionic3實(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-12Angular中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-06Angularjs在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