有没有办法将一个通用表单模板用于多个角形式

时间:2017-09-22 21:41:27

标签: angular angular2-template angular2-forms

我正在处理一个角度2项目,并且有一个通用表单模板,我希望用于大约5个表单,因为它们都将使用相同的html。我选择这样做是为了防止创建具有重复html结构的多个模板。

字段(包括窗口小部件类型)是来自服务器的数据模型的一部分。在我的通用表单组件中,这些小部件类型用于返回小部件的html。在我的模板内部,innerHTML指令获取返回的html并在视图中呈现它。模板对表单控件一无所知。它只接收来自服务器的表单数据,并呈现结果。此模板不仅用于常规表单,也可用于过滤器,因为过滤器只是另一种形式。还有一个扩展表单组件的通用过滤器组件。

因此,对于我的过滤器,我希望能够将这些字段绑定到我的数据以过滤项目列表。问题是,由于窗口小部件的html是在组件内部呈现的,并且在视图中使用innerHTML添加到dom中,因此无法在输入上使用ngModel。也许一种方法可能是在模板内部使用ngSwitch根据窗口小部件类型呈现正确的窗口小部件,但我并不确定。

1 个答案:

答案 0 :(得分:0)

您可以为此创建通用表单组件,并根据需要使用该组件。

如果您不能制作通用组件,您也可以为您创建的任何组件使用完全相同的html模板。假设您有comp1comp2

@Component({
    selector: 'comp1',
    templateUrl: 'MyGenericTemplate.html'
})

@Component({
    selector: 'comp2',
    templateUrl: 'MyGenericTemplate.html'
})