Ich schreibe einige Angular2 Vorlagen, die sich wiederholende Teile mit verschiedenen Containern haben. In diesem Fall kann sich die Ansicht ändern, wenn Dinge gruppiert sind und der Multi-Section-Modus aktiviert ist. Bitte entschuldigen Sie die lange Beispiel, aber so etwas wie dies:Angular2 lokale Komponenten/Vorlage wiederverwenden
<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>
ich wirklich möchte Teile dieser wieder zu verwenden, ohne eine völlig separate Komponente zu schreiben und Draht alles zusammen, was eine Typoskript Datei benötigen würde und ein Vorlage. Ein Verfahren würde mit lokalen Komponenten sein, etwa wie folgt:
<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" />
Ich weiß, die über eine grobe Skizze ist und wahrscheinlich würde nicht so ist die Arbeit, aber die offensichtliche Unfähigkeit, Teile der Ansicht wieder zu verwenden, wie dies bedauerlich ist, . So etwas ist in React ganz einfach, wenn ich das richtig verstehe.
Ich bin neugierig auf elegante Möglichkeiten, andere haben die Wiederverwendung von Portionen der Ansicht gelöst, ohne so weit zu gehen, eine neue Komponente zu schreiben (was unsere Designer dann wissen müssten und Stil, etc .. .). Vielen Dank.
Es ist mir nicht klar, welche Teile der Ansicht auf welche Weise wiederverwendet werden sollen. –