无法从打字稿中的异步方法发出事件
Can not emit event from async method in typescript
我有一个 child 组件,它应该发出一个 event.However 我希望 parent 处理程序方法是 async
。似乎 parent在这种情况下没有收到发出的 object:
Parent 组件
<computer-create-modal (onsubmit)="handleCreateAsync($value)"
>
</computer-create-modal>
export class IndexComponent implements OnInit {
async handleCreateAsync(computer:Computer){
console.log(computer); //always undefined
if(computer=null && computer.id !=null){
}
}
}
Child 组件
<input class="form-control" type="text" [(ngModel)]="id" name="id" id="id"/>
<input class="form-control" type="text" [(ngModel)]="username" name="username" id="name"/>
export class ComputerCreateModalComponent implements OnInit {
@Output()
protected onsubmit:EventEmitter<Computer>=new EventEmitter<Computer>();
protected username:string="";
protected id:string="";
async onSubmitAsync(){
let comp:Computer={
id:this.id,
username:this.username
};
console.log("from child");
console.log(comp);
this.onsubmit.emit(comp);
}
}
我已经尝试使发出事件的 child 方法既同步又不同步。
为什么我的 parent 没有得到值?
P.S 我没有添加 child 的 submit
逻辑,因为在这种情况下它并不重要。
这是一个愚蠢的 one.The 问题是我没有遵循使用 (...)=method($event)
的惯例而是写了 $value
.
所以问题出在为子级的输出绑定处理程序时的父级:
<computer-create-modal (onsubmit)="handleCreateAsync($value)"></computer-create-modal>
从 $value
更改为 $event
解决了问题。
我有一个 child 组件,它应该发出一个 event.However 我希望 parent 处理程序方法是 async
。似乎 parent在这种情况下没有收到发出的 object:
Parent 组件
<computer-create-modal (onsubmit)="handleCreateAsync($value)"
>
</computer-create-modal>
export class IndexComponent implements OnInit {
async handleCreateAsync(computer:Computer){
console.log(computer); //always undefined
if(computer=null && computer.id !=null){
}
}
}
Child 组件
<input class="form-control" type="text" [(ngModel)]="id" name="id" id="id"/>
<input class="form-control" type="text" [(ngModel)]="username" name="username" id="name"/>
export class ComputerCreateModalComponent implements OnInit {
@Output()
protected onsubmit:EventEmitter<Computer>=new EventEmitter<Computer>();
protected username:string="";
protected id:string="";
async onSubmitAsync(){
let comp:Computer={
id:this.id,
username:this.username
};
console.log("from child");
console.log(comp);
this.onsubmit.emit(comp);
}
}
我已经尝试使发出事件的 child 方法既同步又不同步。 为什么我的 parent 没有得到值?
P.S 我没有添加 child 的 submit
逻辑,因为在这种情况下它并不重要。
这是一个愚蠢的 one.The 问题是我没有遵循使用 (...)=method($event)
的惯例而是写了 $value
.
所以问题出在为子级的输出绑定处理程序时的父级:
<computer-create-modal (onsubmit)="handleCreateAsync($value)"></computer-create-modal>
从 $value
更改为 $event
解决了问题。