亚洲 国产精品 日韩-亚洲 激情-亚洲 欧美 91-亚洲 欧美 成人日韩-青青青草视频在线观看-青青青草影院

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 在以角度加載頁面之前加載數(shù)據(jù)的簡單方法

在以角度加載頁面之前加載數(shù)據(jù)的簡單方法

來源:千鋒教育
發(fā)布人:syq
時(shí)間: 2022-09-19 17:06:31 1663578391

  您可能已經(jīng)嘗試過在 app.component 的 ngOnInit 函數(shù)中執(zhí)行此操作,但意識(shí)到您的數(shù)據(jù)需要更早加載。您可能還嘗試過實(shí)現(xiàn)解析器,但意識(shí)到它們更適合單個(gè)路由的上下文。以下是在頁面加載之前加載數(shù)據(jù)的另一種方法,您可能還不知道:APP_INITIALIZER。

1

  定義

  在深入研究代碼之前,讓我們更好地了解APP_INITIALIZER是什么以及它是如何工作的。

  APP_INITIALIZER令牌允許您為應(yīng)用程序提供其他初始化函數(shù)。初始化函數(shù)(您可能已經(jīng)從名稱中收集到)在應(yīng)用初始化期間執(zhí)行。這些函數(shù)的返回類型必須是 void、Promise 或可觀察的。如果從這些函數(shù)中的任何一個(gè)返回 Promise 或可觀察量,則應(yīng)用程序僅在它們完成后才初始化。

  簡單來說,我喜歡把它看作是定義一個(gè)“啟動(dòng)”階段,在這個(gè)階段中,你可以確保你的應(yīng)用正常運(yùn)行所需的所有核心數(shù)據(jù)在用戶開始與之交互之前都已加載。

  以下是可以在初始化函數(shù)中加載的內(nèi)容的幾個(gè)示例:

  翻譯

  經(jīng)過身份驗(yàn)證的用戶數(shù)據(jù)

  配置數(shù)據(jù)

  

  為簡單起見,讓我們以加載當(dāng)前經(jīng)過身份驗(yàn)證的用戶的數(shù)據(jù)為例。

  大多數(shù) Web 應(yīng)用在屏幕右上角顯示當(dāng)前用戶的個(gè)人資料圖片和名稱,因此讓我們實(shí)現(xiàn)類似的內(nèi)容。我將使用一個(gè)新的角度安裝(14.1)和引導(dǎo)5作為CSS:

2

  現(xiàn)在打開您的并導(dǎo)入引導(dǎo):styles.scss

3

  如果您使用的是不同版本的Angular,則某些導(dǎo)入和語法可能會(huì)有所不同,因此,如果您要遵循代碼,請注意這一點(diǎn)。

  奠定基礎(chǔ)

  讓我們從創(chuàng)建一個(gè)負(fù)責(zé)提供當(dāng)前用戶數(shù)據(jù)的服務(wù)開始,該服務(wù)現(xiàn)在將如下所示:

4

  這將是我們數(shù)據(jù)的默認(rèn)值,直到我們發(fā)出請求以獲取實(shí)際的當(dāng)前用戶數(shù)據(jù)。

  讓我們利用這些數(shù)據(jù)并將其顯示在屏幕的右上角。為了簡單起見,我們將直接在應(yīng)用程序組件中執(zhí)行此操作。

  首先,我們注入我們的用戶服務(wù):

5

  然后對(duì)于網(wǎng)頁:

6

  我強(qiáng)調(diào)了我們實(shí)際顯示用戶的姓名和個(gè)人資料圖片的重要部分。

  現(xiàn)在我們已經(jīng)奠定了基礎(chǔ),剩下要做的就是實(shí)現(xiàn)一個(gè)函數(shù)來獲取實(shí)際的用戶數(shù)據(jù),然后查看我們將在何時(shí)何地調(diào)用它。

  我不打算為此使用實(shí)際的后端服務(wù),而是在我們的資產(chǎn)文件夾中創(chuàng)建一個(gè)JSON文件,我們將在其中對(duì)數(shù)據(jù)進(jìn)行硬編碼:

7

  我們將定義負(fù)責(zé)獲取 內(nèi)部數(shù)據(jù)的函數(shù),如下所示:UserService

8

  不要忘記導(dǎo)入 中的 .HttpClientModuleAppModule

  實(shí)現(xiàn)APP_INITIALIZER

  正如我們在定義部分中了解到的那樣,APP_INITIALIZER讓我們定義其他初始化函數(shù),因此現(xiàn)在讓我們在單獨(dú)的文件中定義一個(gè)。

9

  您可以根據(jù)需要命名文件和函數(shù)。我主要堅(jiān)持使用更通用的名稱,因?yàn)槲彝ǔJ褂?如果您更喜歡以不同的方式執(zhí)行,則可以命名此函數(shù)或類似名稱(因?yàn)檫@是它唯一執(zhí)行的操作),然后創(chuàng)建單獨(dú)的函數(shù)來加載您可能需要的任何其他數(shù)據(jù)。forkJoinloadUserDataFactory

  現(xiàn)在,唯一要做的就是將此函數(shù)標(biāo)記為APP_INITIALIZER以便 Angular 知道在應(yīng)用初始化期間執(zhí)行它。為此,我們需要將以下提供程序添加到 AppModule 中的提供程序數(shù)組中:

10

  就是這樣。如果現(xiàn)在刷新頁面,您應(yīng)該會(huì)看到一個(gè)大約 1 秒的空白頁(由于我們在獲取 JSON 文件時(shí)添加的延遲),之后頁面將加載,并在右上角顯示實(shí)際的用戶名和頭像(在 user.json 文件中指定的用戶名和頭像)。

  需要考慮的事項(xiàng)

  可能最重要的一點(diǎn)是,如果從任何初始值設(shè)定項(xiàng)函數(shù)錯(cuò)誤返回的可觀察值,則應(yīng)用將不再初始化。在我們的示例中,您可以通過重命名或臨時(shí)刪除文件來查看此操作,這將導(dǎo)致 Observable 失敗并顯示 404 錯(cuò)誤。因此,您將被困在最初的空白頁上。

  若要阻止這種情況發(fā)生,請始終確保使用運(yùn)算符捕獲任何潛在錯(cuò)誤,并為數(shù)據(jù)提供默認(rèn)值或?qū)⒂脩糁囟ㄏ虻教囟ǖ腻e(cuò)誤頁面,您可以在其中向他們提供出錯(cuò)的詳細(xì)信息以及如何繼續(xù)前進(jìn)。在我們的示例中,重定向到錯(cuò)誤頁面可能如下所示 - 如果您想嘗試此操作,請不要忘記通過更新 AppModule 中提供程序的鍵來將 添加為依賴項(xiàng),然后創(chuàng)建新頁面及其路由:user.json catchError Router deps

11

  您看到 1 秒鐘的空白頁實(shí)際上是 .發(fā)生這種情況的原因是,由于在可觀察完成之前未初始化應(yīng)用,因此不會(huì)填充該元素,因此您看不到任何內(nèi)容。我通常做的是添加一個(gè)加載的圖像/文本作為元素的子級(jí)。當(dāng)應(yīng)用完成初始化時(shí),你放入 其中的任何內(nèi)容都將被覆蓋。我給你一個(gè)例子,你可以在下面嘗試。如果要使用它,請考慮在初始化AppFactory函數(shù)中增加可觀察量的延遲。index.html<app-root><app-root><app-root>

12

  習(xí)慣使用 RxJS(除非你使用的是承諾),因?yàn)橥ǔG闆r下,你需要使用一堆 RxJS 函數(shù)和運(yùn)算符才能獲得正確的結(jié)果,是我經(jīng)常在這樣的情況下使用的。例如,在我們的示例中,我們只處理了用戶登錄時(shí)的情況,但如果用戶實(shí)際上是訪客,該怎么辦?在這種情況下,我們可能希望堅(jiān)持使用我們定義的默認(rèn)數(shù)據(jù)。在單個(gè)流中執(zhí)行此操作的一種方法看起來像這樣 - 請記住,這只是一個(gè)示例,由于我們尚未一起定義任何內(nèi)容,因此在當(dāng)前項(xiàng)目中不會(huì)開箱即用 :forkJoin iif switchMap map catchError tap authService

13

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
Visual Studio Online和GitHub有什么區(qū)別?

1.定位不同Visual Studio Online,現(xiàn)更名為Visual Studio Codespaces,是微軟提供的一款在線開發(fā)環(huán)境,允許開發(fā)者在云端進(jìn)行編程和調(diào)試工作。而...詳情>>

2023-10-15 00:21:42
什么是域控制器?

一、域控制器的定義域控制器是指在Windows Server操作系統(tǒng)中部署Active Directory服務(wù)的服務(wù)器。Active Directory是微軟公司開發(fā)的目錄服務(wù),用...詳情>>

2023-10-15 00:10:28
深度學(xué)習(xí)模型權(quán)重h5、weights、ckpt、pth有什么區(qū)別?

1.來源框架不同h5格式通常用于Keras和TensorFlow框架,weights用于Darknet框架,ckpt是TensorFlow框架的一種格式,而pth則主要用于PyTorch框架...詳情>>

2023-10-15 00:05:17
大數(shù)據(jù)測試工程師需要具備哪些技能?

一、理解大數(shù)據(jù)概念大數(shù)據(jù)測試工程師需要理解大數(shù)據(jù)的基本概念和原理,如分布式存儲(chǔ)、MapReduce、實(shí)時(shí)計(jì)算等。他們還需要了解如何處理大規(guī)模的...詳情>>

2023-10-14 23:43:03
為什么SpringBoot的 jar 可以直接運(yùn)行?

一、JAR文件的結(jié)構(gòu)與執(zhí)行方式Spring Boot的JAR包是Java Archive的縮寫,它是一種壓縮文件格式,可以將Java項(xiàng)目的類文件、資源文件以及依賴庫等...詳情>>

2023-10-14 23:01:49
快速通道
亚洲中字幕日产2021草莓 | 国产综合久久亚洲综合| 精品人妻人人做人人爽| 免费一区二区三区成人免费视频 | 亚洲 日本 欧美 中文幕| 亚洲一区二区三区在线观看网站 | 不收费半夜年轻人看B站软件| 国产成人亚洲综合A∨| 精品无码成人片一区二区98| 男人边吃奶边做好爽免费视频| 色一情一乱一伦一区二区三欧美| 亚洲AV永久无码精品表情包| 91精品人妻一区二区三区| 国产A级毛多妇女视频| 精品无码国产自产拍在线观看蜜桃| 欧美黑人又大又粗XXXⅩ| 熟女高潮喷水一区二区三区| 亚洲男人第一无码AV网| 扒开双腿疯狂进出爽爽爽视频| 国产午夜精品一区二区| 妺妺窝人体色www在线观看婚闹| 少妇人妻好深太紧了A| 亚洲情文字幕在线一区| OLDVIDEO高潮日本熟妇| 韩国无码AV片在线观看| 欧美熟妇搡BBBB搡BBBB| 性XXⅩ欧美老妇肥老太| 97人人超碰国产精品最新O| 国产精品无码久久久久久久久久| 浪荡受NP纯肉公共场合BL男男 | 亚洲国产精品一区二区美利坚 | 亚洲熟妇无码一区二区三区导航| 宝贝我不想带小雨伞了| 极品少妇XXXX精品少妇小说| 人妻妺妺窝人体色WWW仙踪林| 亚洲AV成人一区二区三区在线看 | 装睡被陌生人摸出水好爽| 国产精品久久久久久影视| 免费光看午夜请高视频| 无码天堂亚洲国产AV| 99精产国品一二三产区区别电影| 国产日产欧产精品精品AI| 欧美丰满大乳高跟鞋| 亚洲AV无码一区二区三区少妇| 99久久久无码国产麻豆| 国产亚洲成AV人片在线观黄桃| 欧美成人V片观看| 亚洲VA中文字幕| 成人亚洲AV日韩AV欧v| 久久亚洲国产成人精品无码区| 天堂√中文在线BT| 27邪态恶动图GIF喷水赞一把| 国产精品无码一区二区三区在| 妺妺窝人体色聚窝窝www毛片| 亚洲AV无码成人精品区狼人影院| 被两个男人按住吃奶好爽| 久久国语露脸国产精品电影| 忘忧草日本在线播放WWW| 98久9在线 | 免费| 精品露脸国产偷人在视频| 少妇高潮毛片免费看| 999久久久无码国产精品| 精品国产一区二区三区久久久狼| 色悠久久久久综合欧美99| 69无人区乱码一二三四区别| 激情综合一区二区迷情校园| 少妇爆乳无码专区网站| 67194熟妇在线直接进入百度| 国产精品毛片Av无码一区二区 | 国产成人AV大片大片在线播放| 每个世界都被主角睡来睡去可乐饼| 日韩麻豆乱婬一区二区三区| 中英字幕乱码在线观看| 国内精品自产拍在线观看| 日韩一区二区高清视频| 99久久国产热无码精品免费| 久久精品人妻一区二区三区| 西方37大但人文艺术任汾A级| 超碰色偷偷男人的天堂| 内射后入在线观看一区| 亚洲一区强奸视频| 狠狠爱俺也去去就色| 无码人妻丰满熟妇片毛片| 成人免费乱码大片A毛片| 女人自熨全过程视频免费| 亚洲熟妇AV午夜无码不卡| 国产精品VA在线观看无码| 人妻少妇精品中文字幕AV蜜桃| 中国GAY片男同志免费网站| 精品免费国产一区二区| 亚洲 日韩 另类 制服 无码 | 久久久精品中文字幕麻豆发布 | 国产精品一区二区手机在线观看| 日日摸夜夜摸狠狠摸婷婷| ZOOM人与ZOOM视频| 欧美夫妻免费拍拍片| 中文字幕乱码人在线视频1区| 久久精品国产大片免费观看| 亚洲AV永久精品无码| 国产麻传媒精品国产AV| 婷婷开心色四房播播| 丰满人妻熟妇乱又伦精品软件| 人妻AⅤ无码一区二区三区| 97久久人人超碰国产精品| 蜜桃AV人片在线观看| 在厨房乱子伦对白| 里番本子侵犯肉全彩无码| 亚洲熟女WWW一区二区三区| 精品AV综合一区二区三区| 亚洲爆乳中文字幕无码专区网站| 国产亚洲婷婷香蕉久久精品| 性XXXⅩ俄罗斯女人| 国产欧美成AⅤ人高清| 无码人妻久久一区二区三区免费丨| 国产AV导航大全精品| 天美传媒国产电视推荐| 国产成人国拍亚洲精品| 无码AⅤ最新AV无码专区 | WWW国产精品人妻一二三区| 欧美性大战XXXXX久久久| T66Y地址一地址二满18周岁| 秋霞电影院午夜无码中文| 办公室双腿打开揉弄高潮淑芬| 人人做人人爽国产视| 成人黄网站片免费视频| 色欲av一区二区三区蜜臀| 国产成人精品久久一区二区| 无码人妻丰满熟妇奶水区码| 国产三级在线观看播放| 亚洲成AV人在线观看| 精品无码一区二区三区| 亚洲中文字幕无码久久综合网| 久久天天躁狠狠躁夜夜2019| 中文字幕三级人妻无码视频| 欧美日韩精品一区二区在线视频 | 国产欧美日韩一区二区三区 | 亚洲无人区码一二三码区别图片| 久久久久久国产精品美女| 亚洲综合伊人久久综合| 娇小性XXXX摘花HD| 一边做一边潮喷18P| 免费看成人毛片无码视频| 99久久精品午夜一区二区| 欧美性XXXX狂欢老少配| 24小时日本免费观看WWW| 欧美性生交XXXXX免费观看| 成人精品免费视频在线观看| 丝袜灬啊灬快灬高潮了视频| 国产精品无码素人福利免费| 亚洲不卡无码永久在线| 久久精品人成免费| 99精品国产99久久久久久97| 日韩av无码一区二区| 国产丰滿老熟女多毛hD| 亚洲产在线精品亚洲第一站一 | 韩国激情高潮无遮挡HD| 亚洲AⅤ熟女五十路中出| 极品少妇被啪到呻吟喷水| 曰批免费视频播放免费直播| 男人激烈吮乳吃奶动态图 | 高清粉嫩无套内谢国语播放| 性欧美丰满熟妇XXXX性久久久| 精品无码国产一区二区三区51安| 中文字幕无码精品亚洲资源网| 欧美午夜精品一区二区蜜桃| 国产成人8X视频网站| 无码人妻精品一区二区三区久久久| 国产AVXXXX无套内射| 香港三级精品三级在线专区| 久久国产精久久精产国| 97成人碰碰久久人人超级碰OO| 日韩精品少妇无码受不了| 国产啪亚洲国产精品无码| 亚洲春色AV无码专区在线播放 | 国模无码一区二区三区不卡| 伊人久久大香线蕉AV成人| 人妻少妇乱子伦无码视频专区| 国产精品久久久久精品三级卜 | 国产农村一国产农村无码毛片| 亚洲无人区码二码三码区别图| 欧洲少妇色XXXXX欧美美妇| 国产成人精品一区二区三区| 亚洲一区二区三区小说| 日本亲近相奷中文字幕视频| 国产无人区码一码二码三MBA| 中国亲子伦孑XXⅩ| 人妻AV无码一区二区三区| 国产亚洲欧美日韩剧的剧情介绍 | 美女内射在线观看| 公园小树中老年交易图片| 亚洲精品一卡2卡三卡4卡5卡| 欧美无人区码卡二三卡四卡| 国产毛片一二区三区四区| 中文字幕乱码亚洲无线码三区| 熟妇高潮一区二区精品de| 久久本道综合久久伊人| 别揉我奶头~嗯~啊~视频在线观| 亚洲国产成人久久一区WWW| 欧美午夜性春猛交ⅩXXX男| 国产女人的高潮国语对白|