Ich möchte das angeklickte Element in ngFof anzeigen, um Informationen anzuzeigen, die durch ngIf ausgeblendet sind. Wenn Sie jetzt auf ein Bild klicken, werden alle versteckten Elemente angezeigt. Wie zeigen Sie die Informationen des einzelnen angeklickten Bildes an?So zeigen Sie das angeklickte Element in * ngFür die Liste Verstecken von anderen mit Angular 2
Ich benutze jquery in meinem Beispiel nicht, weil ich es nicht zum Funktionieren bringen konnte. Ich möchte herausfinden, wie man es in angular2 macht, bevor man andere Lösungen akzeptiert. plunker
@Component({
selector: 'hello-world',
template: 'src/hello_world.html',
directives: [FORM_DIRECTIVES, CORE_DIRECTIVES]
})
export class HelloWorld {
clicked() {// only show clicked img info
e=event.target;
console.log(e);
this.show=!this.show;
};
info = [{
data: "information for img1:",
data2: "only the info img1 is displayed"
},
{
data: "information for img2:",
data2: "only the info for img2 is displayed"
},
{
data: "information for img3:",
data2: "only the info for img3 is displayed"
}]
}
<div *ngFor="#x of info">
<img src="http://lorempixel.com/150/150" (click)="clicked($event)" >
<div *ngIf="show">
<div class="names">
<div class="fullName">{{x.data}}</div>
<div>{{x.data2}}</div>
</div>
</div>
</div>
fand ich diesen Beitrag, der ein ähnliches Problem hat, wenn auch ich es nicht in meinem Code implementieren könnte. angular2-get-reference-to-element-created-in-ngfor
@JS_astronauts: ich hatte update meine Antwort – dieuhd
Wenn die "Dinge" Daten von einer externen Ressource kommen, wie wäre es möglich, dies zu erreichen, ohne die "show: false" -Eigenschaft zum "Dinge" -Array hinzuzufügen? @dieuhdd hast du eine gute Lösung aber die geöffnete Info schließt nicht wenn andere ausgewählt werden. –
@JS_astronauts: Sie brauchen nicht declera 'show' in' sachen'. – dieuhd