我創建一個組件,其中我將有3個按鈕[ Edit, Cancel, Save ]
,當用戶單擊編輯按鈕時,將出現保存並取消按鈕,單擊保存按鈕時,它將會從父組件觸發一個函數。訪問子組件的所有父組件函數
問題是,當我將一個函數從父項傳遞給ESC組件時,它無法從父指令中訪問其他函數。
注意的組件將被用於在不同 組件的全球運作
Plunker:http://plnkr.co/edit/ZmyFjwhM6tPZXubTfeGA?p=preview&open=app%2Fapp.component.ts
代碼:
<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;
}
}
父組件:
Component usage: <app-esc [run]="setName"></app-esc>
export class AppComponent {
name = 'Angular';
setName() {
this.setNameCd();
}
setNameCb() {
this.name = 'Angular 2 asd';
}
}
反過來思考,使用'@ Output'來達到這個特定目的。 –
你是什麼意思?林不知道這是否可以完成輸出 – user3334406