您好,登錄后才能下訂單哦!
本文實(shí)例講述了Angular4的輸入屬性與輸出屬性。分享給大家供大家參考,具體如下:
Angular4輸入屬性
輸入屬性通常用于父組件向子組件傳遞信息
舉個(gè)栗子:我們?cè)诟附M件向子組件傳遞股票代碼,這里的子組件我們叫它app-order
首先在app.order.component.ts中聲明需要由父組件傳遞進(jìn)來的值
order.component.ts
... @Input() stockCode: string @Input() amount: string ...
order.component.html
<p>這里是子組件</p> <p>股票代碼為{{stockCode}}</p> <p>股票總數(shù)為{{amount}}</p>
然后我們需要在父組件(app.component)中向子組件傳值
app.component.ts
... stock: string ...
app.component.html
<input type="text" placeholder="請(qǐng)輸入股票代碼" [(ngModel)]="stock"> <app-order [stockCode]="stock" [amount]="100"></app-order>
這里我們使用了Angular的雙向數(shù)據(jù)綁定,將用戶輸入的值和控制器中的stock進(jìn)行綁定。然后傳遞給子組件,子組件接收后在頁面顯示。
Angular4輸出屬性
當(dāng)子組件需要向父組件傳遞信息時(shí)需要用到輸出屬性。
舉個(gè)栗子:當(dāng)我們從股票交易所獲得股票的實(shí)時(shí)價(jià)格時(shí),希望外部也可以得到這個(gè)信息。為了方便,這里的實(shí)時(shí)股票價(jià)格我們通過一個(gè)隨機(jī)數(shù)來模擬。這里的子組件我們叫它app.price.quote
使用EventEmitter從子組件向外發(fā)射事件
price.quote.ts
export class PriceQuoteComponent implements OnInit{ stockCode: string = 'IBM'; price: number; //使用EventEmitter發(fā)射事件 //泛型是指往外發(fā)射的事件是什么類型 //priceChange為事件名稱 @Output() priceChange:EventEmitter<PriceQuote> = new EventEmitter(); constructor(){ setInterval(() => { let priceQuote = new PriceQuote(this.stockCode, 100*Math.random()); this.price = priceQuote.lastPrice; //發(fā)射事件 this.priceChange.emit(priceQuote); }) } ngInit(){ } } //股票信息類 //stockCode為股票代碼,lastPrice為股票價(jià)格 export class PriceQuote{ constructor(public stockCode:string, public lastPrice:number ) }
price.quote.html
<p> 這里是報(bào)價(jià)組件 </p> <p> 股票代碼是{{stockCode}} </p> <p> 股票價(jià)格是{{price | number:'2.2-2'}} </p>
接著我們?cè)诟附M件中接收事件
app.component.html
<app-price-quote (priceChange)="priceQuoteHandler($event)"></app-price-quote> <div> 這是在報(bào)價(jià)組件外, 股票代碼是{{priceQuote.stokcCode}}, 股票價(jià)格是{{priceQuote.lastPrice | number:'2.2-2'}} </div>
事件綁定和原生的事件綁定是一樣的,都是將事件名稱放在()中。
app.component.ts
export class AppComponent{ priceQuote:PriceQuote = new PriceQuote('', 0); priceQuoteHandler(event:PriceQuote){ this.priceQuote = event; } }
這里的event類型就是子組件傳遞事件的類型。
簡(jiǎn)單的說,就是子組件通過emit發(fā)射事件priceChange,并將值傳遞出來,父組件在使用子組件時(shí)會(huì)觸發(fā)priceChange事件,接收到值。
更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS指令操作技巧總結(jié)》、《AngularJS入門與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)》
希望本文所述對(duì)大家AngularJS程序設(shè)計(jì)有所幫助。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。