【发布时间】:2016-10-24 20:39:29
【问题描述】:
让供应商成为文档(带有代码、名称和许多其他字段)。 我有一个组件
export class SuppliersDetails extends MeteorComponent {
supplier: any;
invalidKeys: Object; // array <key> => <error message>
还有一个表格
<div>
<input [(ngModel)]="supplier.code" [class.invalid]="invalidKeys['code']" id="code" type="text" class="validate">
<label for="code" [class.active]="supplier.code || invalidKeys['name']" [attr.data-error]="invalidKeys['code']" >Code</label>
</div>
允许我编辑它。
我如何重构我的组件/模板,以减轻我的模板重量?
这里只有1个字段,只处理invalidKeys消息的显示。但是我有 8 个字段和一些特定的逻辑要添加。这将变得不可读。
我正在寻找类似的东西
<div>
<input plsDoItAllAndUseThatId='code'></input>
<label plsDoItAllAndUseThatId='code'>Code</input>
</div>
但我对设计一无所知,有什么想法吗?
【问题讨论】:
-
您无能为力。您可以将其包装在一个组件中,但使用自定义组件作为表单输入字段(使用
[(ngModel)]="...")也不是一件容易的事。它需要实现ControlValueAccessor,并且需要可配置,以防输入之间的某些事情发生变化。
标签: meteor angular angular2-template angular2-forms