当前位置: 首页 > 知识库问答 >
问题:

Angular2-不能绑定到“窗体组”,因为它不是“窗体”的已知属性

斜博超
2023-03-14

(为简洁起见进行了简化)

modal-dialog.html

<!--modal-content-->

<!--modal-header-->

<modal-body [BodyTemplateUrl]="BodyTemplateUrl" [BodyTemplate]="BodyTemplate"></modal-body>

<!--modal-footer-->

modal-body.html(使用angular2-component-outlet的动态模板)

  <ng-container *componentOutlet="template; context: context"></ng-container>
@Input() BodyTemplateUrl: string;
@Input() BodyTemplate: string;

constructor() { }

ngAfterViewInit() {
  // this.template = require(this.BodyTemplateUrl);  // 'module undefined' when doing this

  this.template = this.BodyTemplate;  // can't bind to formGroup error.. 
}
<modal-dialog [HeaderText]="modalHeaderText"
          [ActionButtonText]="actionButtonText"
          [OkButtonText]="okButtonText"
          [CloseButtonText]="closeButtonText"
          [BodyTemplateUrl]="bodyTemplateUrl"
          [Body]="bodyTemplate">
</modal-dialog> 

共有1个答案

彭海阳
2023-03-14

ReactiveFormsModule和FormsModule在模式模块所在的SharedModule中导入(和导出)。

不会这样工作的。模块不会从父级继承任何东西。模块应该是自包含的。因此modalmodule不能从sharedmodule获取表单。

要解决这个问题,您可能认为可以将SharedModule导入到ModalModule中(以获取表单),但这样做是有效的,因为您将有一个循环依赖项并导致它中断。因此,如果要将表单模块包含在SharedModule中,只需将表单模块直接导入到modalModule中。

 类似资料: