AI æ¶ä»£ Angular å¼åè ä»ªè¡¨æ¿ | AIçæåç¿»è¯
é¡¹ç®æ¿æ¯ï¼The âAI-Era Developer Dashboardâ
è¿æ¯ä¸ä¸ªçæ£ä»¤äººå ´å¥ä¸æ¶æºæ°å½çé¡¹ç®æ³æ³ãæ¨æ¬è´¨ä¸æ¯å¨æå»ºä¸ä¸ª AI å¼åè çä¸ªäººææ¥ä¸å¿ â å°ç¤¾äº¤è¶³è¿¹ãä»£ç æ´»å¨å LLM æ¶èç»åå¨ä¸ä¸ªå¯èªå®ä¹çç»å¸ä¸ãå°å®æ³è±¡æâAI æ¶ä»£ç Netvibesâã
ð§ 为ä»ä¹ Angular 21 æ¯è¿éçä¸ä¸ªå¼ºæåéæ©
Angular 21 äº 2025 å¹´åºåå¸ï¼å¸¦æ¥äº Signal Forms ä½ä¸ºååºå¼è¡¨å APIãzoneless change detection ä½ä¸ºæ°é»è®¤ãVitest ä½ä¸ºç°ä»£æµè¯ç¯å¢ãAngular Aria ç¨äºå¯è®¿é®ç»ä»¶ï¼ä»¥åå¢å¼ºç MCP server ç¨äº AI æ¯æçå¼åã
ç´æ¥æ 忍ç仪表æ¿ç Angular 21 å ³é®ç¹æ§ï¼
- Signals-first reactivity â Signal Forms æ¶é¤äºæå¨
valueChanges订é åä»¤äººçæ§çtakeUntil(this.destroy$)模å¼çéè¦ï¼ä½¿å°é¨ä»¶è®¾ç½®/é 置表åå¹²åä¸ååºå¼ã - Zoneless change detection â Zoneless change detection å¨ v20.2 ä¸è¾¾å°ç¨³å®ï¼å¹¶å¨ v21 ä¸æä¸ºé»è®¤ï¼å®å ¨ç§»é¤ zone.jsï¼åå°å¼éå¹¶äº§çæ´å¹²åçå æ è·è¸ª â è¿å¯¹äºä½¿ç¨ websockets æè½®è¯¢ç宿¶ä»ªè¡¨æ¿è³å ³éè¦ã
- Standalone components â æ¯ä¸ªå°é¨ä»¶é½æ¯ä¸ä¸ªå®ç¾çèªå å« standalone componentï¼å¯ä»¥æå è½½ã
- Angular Aria â æ°ç Angular Aria ç»ä»¶åºæä¾äº 8 ç§ UI 模å¼å 13 个åºäº signals çç»ä»¶ï¼å®å ¨ååºå¼ä¸å¯è®¿é® â é常éåå¯è®¿é®çå°é¨ä»¶å®¹å¨åèåã
ð¦ æ ¸å¿å°é¨ä»¶æå»º
å¯¹äº OpenRouter å ·ä½æ¥è¯´ï¼æ¨å¯ä»¥å±ç¤ºçå ³é®ææ å æ¬ï¼æ»ä»¤ç使ç¨éï¼è¾å ¥ vs è¾åºæåï¼ãéæ¶é´ååç令ç使ç¨éãé误çãç¼åå©ç¨çç¾åæ¯ã模ååå¸ãææ¨¡åçææ¬åå¸ï¼ä»¥åéæ¶é´ååç请æ±éã
OpenRouter å
许æ¨å¨è¯·æ±ä¸å
å« usage: {include: true} 以å¨ååºä¸æ¥æ¶ä½¿ç¨æ°æ®ï¼æ¨è¿å¯ä»¥å¨ Activity é¨åæ¥çæ¨çåå²è®°å½ã
ð å¯åèç类似项ç®
å°é¨ä»¶/ä»ªè¡¨æ¿æ¶æ
- Dashy â ä¸ä¸ªå¼æºãèªæç®¡ç仪表æ¿ï¼æç»äº 50+ ä¸ªé¢æå»ºå°é¨ä»¶ï¼æ¯æç¶ææ£æ¥ã主é¢ã徿 å å UI ç¼è¾å¨ãä» UI ä¸ï¼æ¨å¯ä»¥éæ©ä¸åçå¸å±ã项ç®å¤§å°ãæ¾ç¤º/éèç»ä»¶ï¼å¹¶åæ¢ä¸»é¢ãè¿æ¯å°é¨ä»¶æ·»å /ç§»é¤/èªå®ä¹ UX çæè¿åèã
- ngx-admin â åºäº Angular 10+ çå¯èªå®ä¹ç®¡çä»ªè¡¨æ¿æ¨¡æ¿ï¼MIT 许å¯ï¼å ·æä¸°å¯ççæå°é¨ä»¶ãé常éåå¸å±åèã
- ai-api-usage-monitor â ä¸ä¸ªå¤æä¾å AI API 使ç¨åææ¬çæ§ç³»ç»ï¼æ¯æ OpenAIãAnthropic ClaudeãOpenRouterãGoogle GeminiãElevenLabs å MiniMaxï¼å¸¦æä»ªè¡¨æ¿åè¦æ¥ãå®å æ¬å¯¹ 6 å¤§ä¸»è¦ AI æä¾åç宿¶çæ§ãåç¡®çææ¬è·è¸ªï¼ä»¥åéè¿çµåé®ä»¶ãSlack å webhooks çæºè½é¢ç®è¦æ¥ã
- SigNoz OpenRouter Dashboard â å±ç¤º OpenRouter ç»è®¡é¢æ¿ææ åå¸å±çç»ä½³åèã
ç½æ ¼/ææ½å°é¨ä»¶å¸å±
- angular-gridster2 â Angular ææ½å¯è°æ´å¤§å°ç½æ ¼åºçé¦éï¼å¨ Angular 21 ç standalone components ä¸å·¥ä½è¯å¥½ï¼
- @angular/cdk DragDrop â Angular ç CDK æä¾è¡ä¸ºåè¯ï¼å¦ Drag and Dropï¼æ¨å¯ä»¥å°å ¶å å«å¨èªå·±çèªå®ä¹ç»ä»¶ä¸ â ä¿æåç以è·å¾æ´è½»çä¾èµè¶³è¿¹ã
ðï¸ æ¨èæ¶æ
src/
âââ widgets/ # Each widget = standalone component
â âââ github-heatmap/
â âââ openrouter-tokens/
â âââ twitter-profile/
â âââ ai-cost-chart/
â âââ widget-registry.ts # Registry for dynamic widget loading
âââ core/
â âââ dashboard-store.ts # Signal-based state (layout, widget config)
â âââ api/ # Per-service API services
â âââ widget.model.ts
âââ layout/
â âââ grid.component.ts # CDK-based drag/drop grid
â âââ widget-shell.component.ts
âââ settings/
âââ api-keys.component.ts # Store keys in localStorage/encrypted
ç¶æç®¡çï¼ä½¿ç¨ Angular 21 Signals + localStorage æä¹
å仪表æ¿å¸å±é
ç½®ãä¸éè¦ NgRx â signals è¶³å¤è¡¨è¾¾åã
å°é¨ä»¶åè®®ï¼å®ä¹ä¸ä¸ª WidgetComponent æ¥å£ï¼å¸¦æ config è¾å
¥ signalãtitle å refresh() æ¹æ³ãæ¯ä¸ªå°é¨ä»¶å®ç°æ¤æ¥å£ã
ð ï¸ å»ºè®®ææ¯æ
| å± | éæ© | åå |
|---|---|---|
| Framework | Angular 21 | Signals, zoneless, standalone |
| UI Components | Angular Aria + Tailwind | å¯è®¿é®ãæ æ ·å¼èªç± |
| Charts | ngx-echarts or Chart.js | 两è 齿 Angular å è£ å¨ |
| Grid layout | angular-gridster2 | æçãAngular åç |
| HTTP | Angular HttpClient (functional) |
å ç½®ãsignals å好 |
| Auth/Keys | Angular Signal Store + encrypt-storage | å®å ¨çæ¬å°å¯é¥åå¨ |
| Testing | Vitest (Angular 21 default) | å¿«éãzoneless åç |
ð¡ 项ç®å称建议
个人æ¨èï¼SignalBoard â å®å·§å¦ï¼Angular Signals + 社交信å·çæ§ï¼ãæè®°ä¸å¼å¾ååã
ð å ¥é¨æ£æ¥æ¸ å
ng new signal-board --standaloneâ æå»º Angular 21 standalone 项ç®- å®è£
angular-gridster2ç¨äºææ½å°é¨ä»¶ç½æ ¼ - å建ä¸ä¸ªå¸¦æåºäº signal çæ´»å¨å°é¨ä»¶å表ç
WidgetRegistryService - å æå»º GitHub å°é¨ä»¶ï¼å ¬å ± APIï¼æ é认è¯å³å¯ç¨äºå ¬å ±èµæï¼
- 使ç¨
/api/v1/generationç»è®¡ç«¯ç¹æ·»å OpenRouter å°é¨ä»¶ - Twitter/X å°é¨ä»¶æ¾æå â API v2 éè¦ OAuth 2.0ï¼æåè§å
- æ·»å ä¸ä¸ª
+æé®æå¼å°é¨ä»¶ç®å½æ¨¡ææ¡ â éæ©å¹¶æ·»å å°ç½æ ¼ - 卿¯æ¬¡ææ½/è°æ´å¤§å°æ¶å°å¸å± JSON æä¹
åå°
localStorage
â ï¸ æ½å¨ææ
- Twitter API v2 çå è´¹å±æä¸¥æ ¼çéçéå¶ï¼èè 15 åé+ ç轮询é´é
- CORSï¼OpenRouter å GitHub æ¯ CORS å好çï¼Twitter 䏿¯ â æ¨éè¦ä¸ä¸ªè½»é级代çï¼Cloudflare Worker æç®åç Node/Deno è¾¹ç¼å½æ°ï¼
- API å¯é¥å®å
¨ï¼åå¿ç¡¬ç¼ç å¯é¥ãåå¨å¨
sessionStorageæå¸¦æç¨æ·è®¾ç½®å£ä»¤çè½»é级å å¯åå¨ä¸
åèèµæï¼
- OpenRouter API Reference
- OpenRouter Support â Usage Tracking
- Dashy â Open Source Widget Dashboard
- ai-api-usage-monitor on GitHub
- Announcing Angular v21 â Official Blog
- Whatâs New in Angular 21 â Angular Architects
- SigNoz OpenRouter Dashboard Template
- ngx-admin on GitHub
