test.js:
PageMetaService的作用是,解析到底有哪些 PageResolver 需要執行,并排程這些 PageResolver,執行對應方法。
這些 Page Resolver 的單元測試,位于檔案 page-meta.service.spec.ts 内:
Page resolver 的實作,位于 page 檔案夾内:
PageMetaResolver 是一個 abstract class:
PageWithAllResolvers:實作了很多接口的類
可以使用 disabledInCsr 禁掉某個 resolver:
如果在開發模式下,不應該執行被禁用的 resolver:
service 就是 PageMetaService,執行 getMeta 并且 subscribe 之後,會觸發 page resolver 的執行。
先要執行該 Service 類的 CMS service,調用 getCurrentPage 拿到目前 CMS 頁面類型,再根據頁面類型拿到負責的 Meta Resolver,最後調用 Resolver 進行解析。
這就是 determine 出來的解析器:
看注釋:在 SSR 模式下,總是執行:
要執行這三個方法: