2017-09-22 25 views
0

更新我的问题更具体的一个通用表单模板的方式。更新 - 是否有用于多个角度的形式

我工作的一个角2项目,有一个我想使用约5的形式,因为他们都将使用相同的HTML一般的表单模板。我选择这样做是为了防止创建具有重复html结构的多个模板。

的领域,其中包括小工具类型,是来自服务器我的数据模型的一部分。在我的一般表单组件中,这些小部件类型用于返回小部件的html。在我的模板内部,innerHTML指令接收返回的html并将其呈现在视图中。该模板不知道有关窗体控件的任何信息。它只需从服务器获取表单数据并呈现结果。该模板不仅用于常规形式,还用于过滤器,因为过滤器只是另一种形式。还有一个扩展表单组件的通用过滤器组件。

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

回答

0

你可以做一个通用的形式组成了这一点,并使用该组件,只要你喜欢。

如果你不能让一个通用组件,你也可以使用完全相同的HTML模板创建的任何组件。假设你有comp1comp2

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

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

太棒了!谢谢一堆!在这种情况下如何绑定使用ngModel?我必须绑定到两个表单上的相同对象吗? – Teeman

+0

假设模板中有一个名为var1的变量,那么组件中也必须包含该变量。实际上,组件和模板文件在编译时合并成一个文件。但我不明白为什么你不能只有一个单一的组件?只需制作一个通用组件。我认为不需要为多个组件创建一个模板。我猜你在做错事。 – omeralper

相关问题