日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Angular应用页面里appId的生成逻辑和位置

發布時間:2023/12/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Angular应用页面里appId的生成逻辑和位置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DomRendererFactory2類的構造函數里,看到三個輸入參數。我們感興趣的是,appId這個三位隨機字符,是如何生成的。

前面這個classRef是DomRendererFactory2的構造函數。后面是調用該構造函數傳入的輸入參數,我們要關注的appId也是這三個輸入參數之一。

輸入參數通過17396行…injectArgs依賴注入的方式生成。
…injectArgs的輸入參數:

真正的參數實例化,發生在這個函數??inject里:

所有injectionToken的實例化,都發生在上圖兩個方法里。

準備生成AppId了:

typeof fn是Object:

檢查record, 發現appId通過provider.useFactory創建:

provider.useFactory里就能看到生成appId的工廠函數了:

這就是我要找的隨機字符生成函數:_appIdRandomProviderFactory()

AppID的生成,本身沒有任何dependency:

直接生成三位隨機字符:

/*** @fileoverview added by tsickle* Generated from: packages/core/src/application_tokens.ts* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc*/ /*** A DI Token representing a unique string id assigned to the application by Angular and used* primarily for prefixing application attributes and CSS styles when* {\@link ViewEncapsulation#Emulated ViewEncapsulation.Emulated} is being used.** If you need to avoid randomly generated value to be used as an application id, you can provide* a custom value via a DI provider <!-- TODO: provider --> configuring the root {\@link Injector}* using this token.* \@publicApi* @type {?}*/ const APP_ID = new InjectionToken('AppId'); /*** @return {?}*/ function _appIdRandomProviderFactory() {return `${_randomChar()}${_randomChar()}${_randomChar()}`; } /*** Providers that will generate a random APP_ID_TOKEN.* \@publicApi* @type {?}*/ const APP_ID_RANDOM_PROVIDER = {provide: APP_ID,useFactory: _appIdRandomProviderFactory,deps: (/** @type {?} */ ([])), }; /*** @return {?}*/ function _randomChar() {return String.fromCharCode(97 + Math.floor(Math.random() * 25)); }

更多Jerry的原創文章,盡在:“汪子熙”:

總結

以上是生活随笔為你收集整理的Angular应用页面里appId的生成逻辑和位置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。