我创建一个组件,其中我将有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