第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Anguar4中如何保持監(jiān)聽某一字段的值的變化。

Anguar4中如何保持監(jiān)聽某一字段的值的變化。

紫衣仙女 2019-03-14 14:15:38
在使用angular4框架開發(fā)過程中,會遇到某些場景。例如:公共組件中有一個全局下拉列表,每當該下拉列表值改變,所有激活的子組件都要做出相應改變。ng1時有$watch指令,但是在ng4中沒有找到類似方法。目前采用的是生命周期的Docheck(),對性能消耗非常大,還有一些不可預期的問題,想請教有沒有更好的監(jiān)聽方法.
查看完整描述

2 回答

?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

結合Rxjs,下拉列表的值作為一個BehaviorSubject放到公用的service中,子組件模版上直接使用async pipe解析值。

例(公用組件的service):


import { BehaviorSubject } from 'rxjs/BehaviorSubject'

...

export XXXService{

    downData:BehaviorSubject<any[]> = new BehaviorSubject<[]>

    ...

}

每次修改下拉值只需(設注入service為xxxService):


xxxService.downData.next(更新的數(shù)據(jù))

所有的子組件引用服務后只需在模版使用async pipe便可自動監(jiān)聽訂閱數(shù)據(jù)變化:

模版


<div *ngFor="let item of (xxxService.downData | async)"></div>

也可以直接在組件中訂閱:


xxxService.downData.subscribe(data => {

    //監(jiān)聽到變化

    ...

})

注意service一定要保持單例


查看完整回答
反對 回復 2019-04-03
  • 2 回答
  • 0 關注
  • 907 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號