美文网首页SAPSAP
SAP Spartacus页面css类的赋值逻辑

SAP Spartacus页面css类的赋值逻辑

作者: _扫地僧_ | 来源:发表于2021-02-12 10:45 被阅读0次

    我们在SAP Spartacus渲染出的页面HTML原生代码里,能观察到DOM节点的class值,比如header:

    navigation:

    footer:

    LandingPage2Template:

    这些css style的赋值所在:

    <ng-template
      [cxPageTemplateStyle]="layoutName$ | async"
      [cxOutlet]="layoutName$ | async"
      [cxOutletContext]="{
        templateName$: templateName$,
        slots$: slots$,
        section$: section$
      }"
    >
      <ng-content></ng-content>
    
      <cx-page-slot
        *ngFor="let slot of slots$ | async"
        [position]="slot"
        [isPageFold]="slot === (pageFoldSlot$ | async)"
      ></cx-page-slot>
    </ng-template>
    
    

    具体设置css style的代码位置:

    /**
       * Adds the page template as a style class to the given element. If any
       * page template was added before, we clean it up.
       *
       * We'll not use hostBinding for the style class, as it will potential drop
       * an existing class name on the host. This is why we need to work with
       * the lower level change detection api.
       */
      protected addStyleClass(template: string, el?: HTMLElement): void {
        this.clear(el);
        if (template) {
    
          console.log('1108 add style from template: ' + template + ' into element: ' + el + ' host: ' + this.host);
          this.currentTemplate = template;
          (el ?? this.host).classList.add(this.currentTemplate);
          this.cd.markForCheck();
        }
      }
    

    更多Jerry的原创文章,尽在:"汪子熙":


    相关文章

      网友评论

        本文标题:SAP Spartacus页面css类的赋值逻辑

        本文链接:https://www.haomeiwen.com/subject/hfchbktx.html