昨天在討論區上面有人問了一個問題,「Angular 要如何做到檢查使用是否有在活動,如果一定時間內都沒有任何動作時,要自動登出系統」,這一個需求最直覺的方式是定時去檢查最後一次使用者有動作的時間,但使用 setInterval
會讓 Angular 的效能變差,這時候要怎麼解呢?
[Angular] ControlContainer 的應用
來談談 ControlContainer
的用法,根據 API 文件解釋
A base class for directives that contain multiple registered instances of
NgControl
. Only used by the forms module.
而內建繼承使用的 class 有
AbstractFormGroupDirective
NgModelGroup
FormGroupName
NgForm
FormGroupDirective
FormArrayName
我們又可以如何利用 ControlContainer
呢
[Angular] 測試含有 debounceTime 的程式碼
Angular 在測試非同步的程式碼,有提供 fakeAsync
與 tick
的方法,可以讓我們手動控制時間的快慢,進而做到程式碼的測試,可是,這個寫法遇到 RxJS 時間相關的 operators 就會出問題,那又該如何處理呢?
[Angular] 有些關於 NgModel 的事情
NgModel
如果沒寫好,很容易出現 ExpressionChangedAfterItHasBeenCheckedError
的錯誤訊息,但這一個錯誤訊息可能也不是 NgModel
直接造成的。只好又將 source code 翻出來看了
[Angular] Router in 7: 一些新功能
Angular 7 版以後 (7.1~7.2),在 Router 的部份又新增了不少功能,一起來看看到底新增了那些功能吧
[Angular] 如何 E2E 測試 PrimeNG Dropdown 元件
PrimeNG 元件很豐富沒錯,但是他所提供的原件在寫 E2E 測試時卻是一個讓人無法忍受的痛苦,主要原因是他為了畫面的呈現,使用各種非正統的方式呈現畫面,而 Dropdown 元件就是一個很標準的案例
[Angular] Angular Playground
其實 Angular Playground 出來已經有好一段時間了,但是之前的環境設定會讓人懶得用。現在可以簡單的透過 ng add angular-playground
的方式完成整體的環境設定,這麼方便不用就說不過去了。
[Angular] Tree Shaking 真的有作用嗎?
Angular 在建置輸出時,如果加上 --prod
時,會將所有的 bundle 做最小化還有 Tree-Shaking 的行為,將沒有使用的程式碼從 bundle 檔案中移除,但是,實際上輸出結果是否如官方所說,還有什麼細節是需要知道的嗎?
[Angular] 該如何使用設定 RouteReuseStrategy
Angular 路由機制中,有一個選項是 routeReuseStrategy
,這一個設定可以讓我們設定路由轉換的過程中,是否要保留 component 並重複使用,而相關的使用方式如下
[RxJS] Subscription
在 RxJS 裡在建立 Observable 時,都會回傳一個 subscription 物件,而這一個物件允許我們手動取消 Observable 的動作,其實 Subscription 裡還有其他細節的。這一篇文章就來探討 Subscription。