日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过 Feature Level 动态控制 SAP Spartacus 的页面显示

發布時間:2023/12/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过 Feature Level 动态控制 SAP Spartacus 的页面显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ng-container 標簽只在 design time 可見,運行時會完全從渲染出的 HTML 源代碼里被移除。通過 ng-container 加上 SAP Spartacus 自定義實現的 cxFeatureLevel Directive, 可以實現根據配置的 Feature level,動態控制某個頁面片段是否顯示的效果。

如下圖所示,紅色高亮區域內的 HTML 頁面布局,僅當 SAP Spartacus 配置的 feature Level >= 3.2 才能夠在 UI 上顯示出來。

這個動態顯示 UI 的邏輯實現在 cxFeatureLevel Directive 里。

該 Directive 實現里,使用 @Input set 定義了一個 input,當消費者使用 Directive,傳入了一個 feature level 后,觸發該 cxFeatureLevel 方法,調用構造函數里注入的 viewContainer 提供的 createEmbeddedView 方法,動態創建視圖。待創建的視圖元數據存儲在另一個注入參數 tenplateRef 里。

this.config 來自 SAP Spartacus 項目里存儲的配置信息。

embeddedTView 和 embeddedLView 都是 Angular 框架根據注入 Directive 構造函數的待渲染視圖的元數據創建的,作為輸入參數調用 renderView 進行頁面渲染:

從 templateFn 的指向的函數名,如下圖 ConfirmationMessageComponent_ng_container_1_Template, 大致就能知道,該 Directive 準備渲染 HTML 模板里 ng-container 包裹的 HTML 標簽。

即如下圖所示:

做個測試:把 app.module.ts 里的 features level 改成 3.1:

發現確實按照我們期望的工作了,被 cxFeatureLevel 控制的 ng-container 里的 p 標簽(messageTitle),已經消失了:

更多Jerry的原創文章,盡在:“汪子熙”:

總結

以上是生活随笔為你收集整理的通过 Feature Level 动态控制 SAP Spartacus 的页面显示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。