技術文章
技術問答
My Project
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
文章
問答
Tag
邦友
鐵人賽
搜尋
0
我從 Angular 中分離出來依賴註入:`static-injector`
angular
nodejs
web
frontend
wszgrcy
2024-03-24 14:05:04
‧
763 瀏覽
分享至
Angular 中的依賴註入確實非常好用,可以使服務之間的依賴關系變得更加靈活和可復用
但是只能在 Angular 中的使用限製了他的發揮,需要讓他在所有 node/前端 平臺上都可以使用
如何使用?
如果你並不關心是如何實現的,可以直接
訪問使用文檔
為什麽不寫一個與 Angular 依賴註入相同的包
一個成熟的功能往往經過了多方面的考量,所以如果能不造輪子那麽是最好的
直接使用 Angular 的源碼可以保證功能與官方一直同步,不需要擔心自己實現的邏輯與官方之間存在差異
node/前端使用同樣的邏輯沒有心智負擔
直接復製代碼就能使用了?
當然不是,首先 Angular 中的源碼都是為了它自身設計服務的,所以會有一些我們不需要的功能需要刪減.比如
@Module
會有依賴註入相關的代碼,
@Host
等組件裝飾器,還有更多非通用依賴都需要去除
Angular 使用依賴註入為靜態依賴註入,所以需要實現自己的靜態編譯方法,保證代碼與官方一致
需要創建接口,對接並調用 Angular 源碼,使得功能正常運行
運行成功就結束了?
運行成功不是結束,反而是開始的第一步,代碼成功獨立執行了,那麽接下來就要保證代碼能與
Angular
官方同步,不錯過新的特性,也不錯過缺陷修復
所以我們要找到一種可以穩定修改代碼的方法,可以隨著項目更新自動對代碼進行裁剪,然後針對裁剪結果進行細微調整,減少工作量
使用
Code Recycle
對代碼進行穩定更新同步
更新同步腳本
通過腳本對 Angular 源碼進行拉取,使用 css 選擇器語法查詢並修改代碼
修改代碼之後對代碼進行測試
每次更新後只需要修改 tag => 同步更新 => 測試 => 調整(如果有問題) => 發布.減少了手工修改可能產生的問題
如何知道倉庫支持哪些功能
查看用例
所有存在的用例均經過了測試驗證,如果您有其他功能需要使用也可以提交 issue
留言
追蹤
檢舉
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
929
組
團體組數
32
組
累計文章數
15109
篇
完賽人數
193
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
17th鐵人賽
14th鐵人賽
12th鐵人賽
18th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
熱門問題
「相容 MySQL 協議」的引擎,你們是怎麼做能力偵測的?我們試了 42 種,結論有點慘
本地跑模型做評測,你們是怎麼給 context 長度設上限的?我們沒設,7.1 GB 的模型吃掉了 51 GB
好奇問問各位大大當如果面對上層施壓時,工程師應當如何捍衛自己的工作優先考量權?上層威脅利誘時,又應當如何用溫和不失堅定的語氣讓上司明白自己為什麼這麼做
網咖外掛
熱門回答
好奇問問各位大大當如果面對上層施壓時,工程師應當如何捍衛自己的工作優先考量權?上層威脅利誘時,又應當如何用溫和不失堅定的語氣讓上司明白自己為什麼這麼做
本地跑模型做評測,你們是怎麼給 context 長度設上限的?我們沒設,7.1 GB 的模型吃掉了 51 GB
網咖外掛
熱門文章
乞丐超人我買超市打折便當時突然發現我家社區夜班保全是美國新創CTO後我拜他為師,Day09:這東西這麼陽春,你真的敢拿給客戶用?
Day 13|多開幾個 Subagent,會比較快嗎?
Day1 | 【前言與觀念】為什麼選擇 n8n?認識 Low-Code 自動化的力量
Day 01:30 天打造專屬 VS Code 開發神器
公司到底有多少台設備在跑?掃了一遍才知道!Lansweeper 介紹
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}