Я пишу некоторые шаблоны Angular2, которые имеют повторяющиеся части с различными контейнерами. В этом случае представление может измениться, если все сгруппировано, и если включен режим нескольких секций. Пожалуйста, извините за длинный пример, но что-то вроде этого:Angular2 местные компоненты/повторное использование шаблонов
<template [ngIf]="isCategoryGrouped">
<div *ngFor="#categories of categories">
<div>{{ categories.category.name }}</div>
<div *ngFor="#thing of categories.things">
<label *ngIf="isMultiSelectMode">
<input type="checkbox" (change)="updateThingSelection(thing, $event)" />
<img [src]="thing.image" /> {{ thing.name }}
</label>
<a href="javascript: void(0)" (click)="selectThing(thing)" *ngIf="! isMultiSelectMode">
<img [src]="thing.image" /> {{ thing.name }}
</a>
</div>
</div>
</template>
<template [ngIf]="! isCategoryGrouped">
<div *ngFor="#thing of things">
<label *ngIf="isMultiSelectMode">
<input type="checkbox" (change)="updateThingSelection(thing, $event)" />
<img [src]="thing.image" /> {{ thing.name }}
</label>
<a href="javascript: void(0)" (click)="selectThing(thing)" *ngIf="! isMultiSelectMode">
<img [src]="thing.image" /> {{ thing.name }}
</a>
</div>
</template>
Я бы очень хотел, чтобы повторно использовать части этого без необходимости писать совершенно отдельный компонент и провод все вместе, для чего потребуется файл машинопись и шаблон. Один из способов будет с локальными компонентами, что-то вроде этого:
<sub-component selector="thing-list" things="input">
<div *ngFor="#thing of things">
<label *ngIf="isMultiSelectMode">
<input type="checkbox" (change)="updateThingSelection(thing, $event)"/>
<img [src]="thing.image" /> {{ thing.name }}
</label>
<a href="javascript: void(0)" (click)="selectThing(thing)" *ngIf="! isMultiSelectMode">
<img [src]="thing.image" /> {{ thing.name }}
</a>
</div>
</sub-component>
<template [ngIf]="isCategoryGrouped">
<div *ngFor="#categories of categories">
<div>{{ categories.category.name }}</div>
<thing-list things="categories.things" />
</div>
</template>
<thing-list [ngIf]="! isCategoryGrouped" things="things" />
Я понимаю, что выше грубый эскиз и, вероятно, не будет работать, как есть, но очевидная неспособность повторно использовать части представления, как это прискорбно , Если я правильно понимаю, это довольно просто в Реактике.
Мне любопытно, как другие люди решили повторное использование частей, не задумываясь о том, чтобы написать новый компонент (который наши дизайнеры тогда должны были знать и стиль и т. Д. .). Благодарю.
Мне непонятно, какие части зрения вы хотите повторно использовать, каким образом. –