【发布时间】:2017-07-22 21:31:01
【问题描述】:
我正在创建一个组件,我将有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来达到这个特定目的。 -
你是什么意思?我不确定这是否可以通过输出来完成
标签: angular