【问题标题】:Pass data to Angular element component将数据传递给 Angular 元素组件
【发布时间】:2019-03-16 17:18:48
【问题描述】:

假设我有一个想要导出并用作独立 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');
}

....

应用模块:

    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);
  } 
}

索引.html:

<app-company-form></app-company-form>

我希望能够在我使用这个组件的任何地方注入任何值,就像:

<app-company-form companyId=11></app-company-form>

所以 companyId 可以从另一个地方填充,完全在 Angular 之外。我不想硬编码角度内的值。

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

【问题讨论】:

    标签: angular typescript element custom-element


    【解决方案1】:

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

    <app-company-form company-id="11"></app-company-form>
    

    【讨论】:

    • naw 我只是一个凡人,谷歌开发 Angular 的开发者是魔术师
    • 感谢您的帮助@cobolstinks
    • 这不适用于 [company-id]="myVar" 对吧?它看起来像是 Web 组件的限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 2017-08-30
    • 2017-06-15
    • 1970-01-01
    • 2017-10-11
    相关资源
    最近更新 更多