将数据传递到Angular元素组件

Mik*_*ike 1 element typescript custom-element angular

鉴于我有一个要导出并用作独立的angular-element-component的组件。

export class CompanyFormComponent implements OnInit {

@Input() public companyId: string;
company: Company;
companyForm: FormGroup;



constructor(
    private companyService: CompanyService,
    private fb: FormBuilder,
  ) { }

ngOnInit() {

if (!this.companyId || this.companyId.length === 0) {
  console.log('Please provide an Id');
}
Run Code Online (Sandbox Code Playgroud)

....

AppModule:

    export class AppModule {
  constructor(private injector: Injector) {}
  ngDoBootstrap() {
    const strategyFactory = new ElementZoneStrategyFactory(CompanyFormComponent, this.injector);
    const element = createCustomElement(CompanyFormComponent, { injector: this.injector, strategyFactory });
    customElements.define('app-company-form', element);
  } 
}
Run Code Online (Sandbox Code Playgroud)

Index.html:

<app-company-form></app-company-form>
Run Code Online (Sandbox Code Playgroud)

我希望能够在使用此组件的任何地方注入任何值,例如:

<app-company-form companyId=11></app-company-form>
Run Code Online (Sandbox Code Playgroud)

因此,可以从Angular之外的其他地方填充companyId。我不想对angular中的值进行硬编码。

我已经尝试了一些方法,但是似乎没有任何效果。

cob*_*nks 5

当您将组件用作自定义/角度元素时,可以通过将以下html属性添加到自定义元素来传递companyId输入参数。

<app-company-form company-id="11"></app-company-form>
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于 [company-id]="myVar" 对吧?它看起来像是网络组件的限制。 (2认同)