SAP Spartacus 有多達 31 個 AppInitiators:
SeoModule 是其中之一。
initSeoService 方法裏,執行 SeoMetaService 的 init 方法。
Init 方法裏,讀取 meta 數據:
Page 對象的明細:
解析到的 meta 數據:
第 30 行給 this.meta 賦值,就會觸發第 33行的 set 操作:
在 set 操作裏分別給每個字段比如 title 賦值,又會進一步觸發 title 的 set 操作:
這裏會調用 ngTitle 設置 title:
觸發對應的 setter:
這裏準備添加 description meta tag 了:
轉移到框架實現:platform-browser.js
最後還是通過 dom 的原生方法,createElement 創建的 meta 標籤:
最後在 Chrome 開發者工具的 Elements 裏能看到 meta 標籤了:
但是,view source 的顯示裏,並沒有這個 meta 標籤:
更多Jerry的原創文章,盡在:"汪子熙":