我知道关于这个主题的other问题,但是我似乎缺少了关于导入formsmodule和reactiveformsmodule的一些内容。
我有一个动态物体的模态部件。其思想是有一个可重用的模式库,其中包含一个动态主体,该主体要么从url加载,要么从预加载的模板填充。
(简明扼要)
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>

模态-车身.部件.ts
@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..
}

许可证.html
<modal-dialog [HeaderText]="modalHeaderText"
          [ActionButtonText]="actionButtonText"
          [OkButtonText]="okButtonText"
          [CloseButtonText]="closeButtonText"
          [BodyTemplateUrl]="bodyTemplateUrl"
          [Body]="bodyTemplate">
</modal-dialog>

我试图让“modal body”组件加载“bodytemplateurl”,
但出现“模块未定义”错误。Q1-此URL是相对于模式对话框组件还是许可证
组件?
现在,我在“licenses.component”中加载主体模板,并通过输入将其传递给对话框组件。现在的问题是“licenses.add.html”(正文模板)
无法识别[formgroup]指令,错误为“无法绑定到'formgroup'
因为它不是“form”的已知属性。
在sharedmodule中导入(和导出)reactiveformsmodule和formsmodules,其中
模态模块生存。然后将sharedmodule导入“licenses.module”中
用于访问模态组件。

最佳答案

reactiveformsmodule和formsmodules被导入(和导出)到模式模块所在的sharedmodule中。
不会这样工作的。模块不会从父级继承任何内容。模块应该是独立的。所以ModalModule不能从SharedModule中获取表单。
要解决这个问题,您可能认为可以将SharedModule导入ModalModule(以获取表单),但这是有效的,因为您将具有循环依赖性并导致它中断。因此,如果要将表单模块包含在ModalModule中,只需将其直接导入到SharedModule中。

关于angular - Angular2-无法绑定(bind)到“formGroup”,因为它不是“form”的已知属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40095815/

10-10 07:41