我正在创建一个表单,我从后端获取字段。映射后,我有这样的东西:
genericFilters: {
iboId: {
'display': false,
'template': ''
},
iboCode: {
'display': true,
'template': 'text_input_iboCode',
/*'template': 'text/iboCode'*/
},
iboName: {
'display': true,
'template': 'text_input_iboName'
},
iboSurname: {
'display': true,
'template': 'text_input_iboSurname'
},
iboRank: {
'display': false,
'template': 'multiselect_iboRank',
/*'template': 'select/multi_iboRank',*/
},
iboEmail: {
'display': false,
'template': 'text_input_iboEmail'
},
iboNewsletter: {
'display': true,
'template': 'simple_select_iboNewsletter',
/*'template': 'select/simple_iboNewsletter',*/
},
};
我的想法是在应用程序级别为表单字段创建每个字段类型(checkbox
、multiselect
、text
、radio
等)。并使用上面的映射JSON
将某个字段类型应用于从后端收到的每个字段。
在我的示例中,该字段iboId
应具有字段类型<text_input_iboCode>
。
所以,在我看来,我不想有这样的事情:
<text_input_iboCode></text_input_iboCode>
<text_input_iboName></text_input_iboName>
<text_input_iboSurname></text_input_iboSurname>
我实际上希望表单创建更抽象,如下所示:
<div *ngFor="let field of genericFilters | dynamicTemplateProcessorPipe">
{{field.template}} <!--This should equal '<text_input_iboName>' for example-->
</div>
问题:
我在问月亮吗?这甚至可能吗?是否有其他或更好的方法来实现这一目标?我在滥用@Pipe
功能吗?
我实际上@Pipe
用于翻译、格式化、objects
在模板中循环等。我猜我也可以将它们return
用于<fieldTemplate>
.
我将开始一项研究,看看是否<ng-template #fieldTemplate>
也可以使用@Pipe
.