Ich erstelle eine Komponente, wo ich 3 Tasten haben [ Edit, Cancel, Save ]
, wenn der Benutzer auf die Schaltfläche Bearbeiten klickt, Speichern und Abbrechen wird angezeigt, wenn Sie auf die Schaltfläche Speichern klicken, wird es triggert eine Funktion von der Elternkomponente.Zugriff auf alle übergeordneten Komponente Funktionen von Kind Komponente
Das Problem ist, wenn ich eine Funktion von der Eltern zu der ESC-Komponente übergeben, kann es nicht auf andere Funktionen von der übergeordneten Direktive zugreifen.
Beachten Sie die Komponente in verschiedenen Komponenten
Plunker in als globaler Betrieb verwendet werden: http://plnkr.co/edit/ZmyFjwhM6tPZXubTfeGA?p=preview&open=app%2Fapp.component.ts
Code:
<div [hidden]="isEdit">
<button (click)="toggleEdit()">Edit</button>
</div>
<div [hidden]="!isEdit">
<button (click)="runFunction(); toggleEdit()">Save</button>
<button (click)="toggleEdit()">Cancel</button>
</div>
export class EscComponent {
@Input() run: Function;
runFunction() {
console.log('Run Function')
this.run()
}
isEdit = false;
toggleEdit() {
this.isEdit = !this.isEdit;
}
}
Geordnete Komponente:
Component usage: <app-esc [run]="setName"></app-esc>
export class AppComponent {
name = 'Angular';
setName() {
this.setNameCd();
}
setNameCb() {
this.name = 'Angular 2 asd';
}
}
Ihr Denken umkehren, verwenden Sie '@ Output' für diesen speziellen Zweck. –
Wie meinst du das? Ich bin nicht sicher, ob dies mit der Ausgabe getan werden kann – user3334406