В нашем проекте есть несколько элементов управления с похожими свойствами. Есть ли способ иметь общее расширение, которое добавляет такие общие атрибуты, чтобы его можно было изменить по всему проекту в одном месте?
Например, объявление typeahead выглядит так:
<input type="text" name="certificate.title" class="form-control" [class.is-invalid]="invalid('certificate.title')" autocomplete="off" required
[(ngModel)]="editModel.certificate.title"
[typeahead]="getTypeahead(dt.Certification, editModel.certificate.title, true)"
(typeaheadOnSelect)="select($event, editModel.certificate)"
[typeaheadOptionsLimit]="10"
[typeaheadMinLength]="2"
typeaheadWaitMs="400"
typeaheadOptionField="title"
typeaheadPhraseDelimiters=" "/>
и атрибуты class, autocomplete, typeaheadOptionsLimit, typeaheadMinLength, typeaheadWaitMs и typeaheadPhraseDelimiters являются общими.
Было бы здорово иметь какой-нибудь общий декларативный способ добавления всех общих свойств к каждому элементу управления, например
<input type="text" name="certificate.title" [class.is-invalid]="invalid('certificate.title')" required
[(ngModel)]="editModel.certificate.title"
[typeahead]="getTypeahead(dt.Certification, editModel.certificate.title, true)"
(typeaheadOnSelect)="select($event, editModel.certificate)"
typeaheadOptionField="title"
**attributeSet="GenericTypeahead"** />
В качестве бонуса было бы здорово иметь возможность переопределять атрибуты.