通過腳本來顯示message

使用場景

  • message是一個全局組件,當(dāng)使用的時候。并不希望要在模板里添加message模板。
  • 希望可以通過類似的代碼來做到如此效果。this.messageService.error('test1')來顯示一個message

實現(xiàn)的步驟

  1. 方法一( 最不好用)
    通過依賴注入的document https://angular.cn/api/common/DOCUMENT獲取document,然后通過淳樸的dom操作來添加message.
  2. 方法2(實裝起來比較繁瑣,而且不夠自動化)
    在根組件里依賴注入ViewContainerRef,然后把ViewContainerRef注冊到message服務(wù)里去。后面調(diào)用message服務(wù)時,相當(dāng)于動態(tài)添加組件。https://angular.cn/guide/dynamic-component-loader
  3. 方法3 (參考的ng-zorro https://ng.ant.design/components/message/zh
    此方法夠自閉,不會污染其他頁面代碼。但是實現(xiàn)比上面麻煩。
    1. 首先得獲取applicationRef https://angular.cn/api/core/ApplicationRef
    2. 構(gòu)建一個容器,把容器視圖掛載到applicationRef上
    3. 后面的顯示message相當(dāng)于添加視圖到這個容器里
    4. 具體實現(xiàn)看https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/components/message/nz-message-base.service.ts
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 已經(jīng)開學(xué)一周了,這一周,每天早上五點起床,,5點20出門,中午12點30分在校門口匆匆吃飯,下午6點10分晚飯也在...
    月殘風(fēng)閱讀 285評論 0 0
  • 國峰老師tips:提醒一下大家:這星期不用太在意訓(xùn)練的數(shù)據(jù),怎麼輕鬆怎麼跑,配速/步頻/心率都先不用去想它。輕鬆完...
    himeteora閱讀 460評論 0 0
  • 小時候,老師總愛問,“你的理想是什么?”那時候的我,很單純地就破口而出“我要當(dāng)一名教師!”所以,小時候,我最愛...
    九月爾閱讀 243評論 0 0
  • 回到宿舍,終于沒有了訓(xùn)練場上人人自危的死一般的寂靜,大家能夠放松一下緊繃的神經(jīng)。我被分到了三班。當(dāng)我把一大堆行李物...
    原來我是小書童閱讀 353評論 0 2
  • 二三十年前如果有一技之長就能一輩子有鐵飯碗,比如在銀行工作是個好職業(yè)不僅工資高工作環(huán)境也好,但今天看來原來的技能有...
    理書俠閱讀 338評論 0 0

友情鏈接更多精彩內(nèi)容