Angular - один и тот же ng-шаблон на нескольких местах в одном компоненте
Два кендо-комбокса с одним источником данных. Есть ли способ, как повторно использовать ng-шаблон из первого списка со вторым списком? Спасибо:)
<kendo-combobox #customerComboboxFrom [data]="customersData" [valueField]="'Name'" [textField]="'Name'" [(ngModel)]="journey.FromCustomer">
<ng-template kendoComboBoxItemTemplate let-dataItem #customerOverview>
<img [src]="dataItem.PhotoUrl" alt="">
<div class="CustomerDetail">
<span>{{dataItem.Name}}</span>
<span class="lighter">{{dataItem.State}}, {{dataItem.Country}}, {{dataItem.District}}</span>
</div>
</ng-template>
</kendo-combobox>
<kendo-combobox #customerComboboxTo [data]="customersData" [valueField]="'Name'" [textField]="'Name'" [(ngModel)]="journey.FromCustomer">
----------- //Is there any way how to reuse HERE ng-template #customerOverview from above ?
</kendo-combobox>
1 ответ
Решение
Вы можете вставить шаблон во второй выпадающий список с шаблоном розетки. В качестве альтернативы шаблон может быть определен за пределами комбинированных списков и вставлен в определение обоих комбинированных списков.
<kendo-combobox #customerComboboxFrom [data]="customersData" ... >
<ng-template kendoComboBoxItemTemplate let-dataItem #customerOverview>
<img [src]="dataItem.PhotoUrl" alt="">
<div class="CustomerDetail">
<span>{{dataItem.Name}}</span>
<span class="lighter">
{{dataItem.State}}, {{dataItem.Country}}, {{dataItem.District}}
</span>
</div>
</ng-template>
</kendo-combobox>
<kendo-combobox #customerComboboxTo [data]="customersData" ... >
<ng-template kendoComboBoxItemTemplate let-dataItem>
<ng-container *ngTemplateOutlet="customerOverview; context: { $implicit: dataItem }">
</ng-container>
</ng-template>
</kendo-combobox>
Смотрите этот стек для демонстрации.