真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

angular中怎么實(shí)現(xiàn)輸入與輸出-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)angular中怎么實(shí)現(xiàn)輸入與輸出,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)2013年至今,先為平利等服務(wù)建站,平利等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為平利企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

組件的輸入

angular允許使用兩種形式來定義組件的輸入,一種是在裝飾器@Component中使用inputs來定義,另一種是使用@Input來定義。

inputs

首先先介紹在裝飾器中使用的輸入。inputs接收的是一個(gè)字符串?dāng)?shù)組,用來指定我們輸入的鍵名。

@Component({
 selector: 'my-component',
 inputs: ['name']
})
class MyComponent {
 name: string;
}

name就會對應(yīng)我們組件中的name變量。

然后我們定義一個(gè)組件,當(dāng)然不可避免有的時(shí)候會在其他的組件的模板中使用,所以就可以這樣寫。

上級組件

export class AppComponent {
 myName = 'zhangsan';
 ...
}

上級組件的模板

方括號[]:數(shù)據(jù)綁定,也叫輸入綁定。將等號右邊的變量綁定在左邊[]中的變量上。

我們的組件

@Component({
 selector: 'app-messages',
 inputs: ['name'],
 templateUrl: './messages.component.html',
 styleUrls: ['./messages.component.css']
})
export class MessagesComponent implements OnInit {
 name: string;
}

這里我們就用name接受了上級組件的myName

angular中怎么實(shí)現(xiàn)輸入與輸出

angular中怎么實(shí)現(xiàn)輸入與輸出

通過上面的圖,就很容易看輸入數(shù)據(jù)的對應(yīng)關(guān)系。

然后我們打印一下看看變量是否成功輸入了。

export class MessagesComponent implements OnInit {
 name: string;

 ngOnInit() {
  console.log(this.name);
 }
}

angular中怎么實(shí)現(xiàn)輸入與輸出

成功輸入!

@Input

上面我們實(shí)現(xiàn)了組件的數(shù)據(jù)輸入,但是angular并沒有滿足現(xiàn)狀,還提供另外一種輸入的方法,就是@Input。

@Component({
 selector: 'my-component'
})
class MyComponent {
 @Input() name: string;
}

只要在我們的組件中定義變量的時(shí)候使用@Input裝飾器就行了。對比上面我們使用inputs時(shí),少了一個(gè)二次聲明。這種方法感覺數(shù)據(jù)的傳遞少了一層關(guān)系,更加易于理解,而且代碼也更加的工整。

組件輸出

說完了組件的輸入,下面我們就該聊聊組件的輸出了。要將數(shù)據(jù)從組件中傳遞出去,就要使用輸出綁定。

圓括號(): 事件綁定,又叫輸出綁定。這里我們監(jiān)聽click事件,然后觸發(fā)display方法。

除了click,angular還有很多內(nèi)置的事件,當(dāng)然,我們在編寫自己的組件的時(shí)候,也可以自定義一個(gè)事件,來與外部通信。

自定義事件

自定義的事件需要做三件事情:

1.在@Component配置中,制定outputs配置項(xiàng)
2.在配置的屬性中,設(shè)置一個(gè)EventEmitter(事件觸發(fā)器)
3.在適當(dāng)?shù)臅r(shí)候,也就是要觸發(fā)的方法中,通過EventEmitter觸發(fā)事件

下面看一下示例:

@Component({
 selector: 'my-component',
 outputs: ['newEvent']
})
export class MyComponent {
 newEvent: EventEmitter;
 
 constructor() {
  this.newEvent = new EventEmitter();
 }
 
 display(): void {
  this.newEvent.emit("test event");
 }
}

然后我們就可以通過上面模板中的代碼實(shí)現(xiàn)輸出了。

如果想在一個(gè)父級的組件中使用這個(gè)輸出,就要使用我們自己的事件了。下面看一個(gè)示例:

父級組件:

export class AppComponent {
 ...
 showEvent(message: string) {
  console.log(`hello: ${message}`);
 }
}

父級模板:

我們的組件:

@Component({
 selector: 'app-messages',
 outputs: ['newEvent'],
 templateUrl: './messages.component.html'
})
export class MessagesComponent {
 newEvent: EventEmitter;

 constructor(private messageService: MessageService) {
  this.newEvent = new EventEmitter();
 }

 display(): void {
  this.newEvent.emit('test event');
 }
}

我們的組件模板:

觸發(fā)
引用文字

然后點(diǎn)擊觸發(fā),可以看到輸出hello:test event。數(shù)據(jù)輸出成功!

angular中怎么實(shí)現(xiàn)輸入與輸出

好了我們再來梳理整個(gè)輸出過程:

1.我們自定以一個(gè)組件,通過內(nèi)置的click事件觸發(fā)display方法,這時(shí)就會觸發(fā)我們自定義的事件:newEvent。

angular中怎么實(shí)現(xiàn)輸入與輸出

2.當(dāng)事件觸發(fā)的時(shí)候,他會執(zhí)行上一級的方法:showEvent。

angular中怎么實(shí)現(xiàn)輸入與輸出

3.我們的事件輸出了一個(gè)字符串test event,然后通過$event獲取這個(gè)輸出結(jié)果,并當(dāng)做參數(shù)傳給上一級的方法showEvent

@Output

同輸入相同,angular也為我們提供了輸出的第二種方式:@Output。

用法與@input類似:

export class MessagesComponent {
 @Output() newEvent: EventEmitter;
}

以上就是angular中怎么實(shí)現(xiàn)輸入與輸出,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


分享題目:angular中怎么實(shí)現(xiàn)輸入與輸出-創(chuàng)新互聯(lián)
分享URL:http://weahome.cn/article/hidji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部