SAP Spartacus的ComponentFactory和ComponentFactoryResolver

时间:2022-07-24
本文章向大家介绍SAP Spartacus的ComponentFactory和ComponentFactoryResolver,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

新建一个Component:

import { Component, ComponentFactory, ComponentFactoryResolver, OnInit } from '@angular/core';
import { OutletPosition, OutletService } from '@spartacus/storefront';
import { MycomComponent } from './mycom/mycom.component';

@Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] })
export class AppComponent implements OnInit {
  constructor(private componentFactoryResolver: ComponentFactoryResolver,
    private outletService: OutletService<ComponentFactory<MycomComponent>>) { }

  title = 'Jerry Store';
  ngOnInit(): void {
    const factory = this.componentFactoryResolver.resolveComponentFactory(MycomComponent);
    this.outletService.add('header', factory, OutletPosition.BEFORE);
  }
}

使用ComponentFactory,将我新建的Component动态添加到header这个outlet上。 最后的效果: