如何在Typescript(Angular Material)中实现回调函数?
我正在使用Angular Material Dialog组件,我希望传递一个可选回调函数,如果用户单击如何在Typescript(Angular Material)中实现回调函数?,angular,angular-material,Angular,Angular Material,我正在使用Angular Material Dialog组件,我希望传递一个可选回调函数,如果用户单击确定按钮,则执行该函数。我可以知道如何实施它吗 askUser(customData: any) { openDialog() { const dialogRef = this.dialog.open(AskDialog, { data: customData }); dialogRef.afterClosed()
确定按钮
,则执行该函数。我可以知道如何实施它吗
askUser(customData: any) {
openDialog() {
const dialogRef = this.dialog.open(AskDialog, {
data: customData
});
dialogRef.afterClosed().subscribe(isOK=> {
if (isOK && customData.hasOwnProperty('callback')) {
// ??? how to execute the "customData.callback"
}
});
}
}
我希望我能像这样使用askUser()
:
function freeGift(gift: string) { /* ... */ }
function contactPolice(phone: number, email: string) { /* ... */ }
askUser({ // callback
displayText: 'Are you a superman?',
callback: freeGift('blue shirt')
});
askUser({ // different callback with different arguments
displayText: 'Are you a criminal?',
callback: contactPolice(this.phone, 'police@gmail.com')
});
askUser({ // no callback
displayText: 'Do not disturb!'
});
如何将回调传递到customData.callback
,以及如何调用和执行该函数
换句话说,如何将函数传递到“变量”中,然后在适当的上下文中执行“变量”
有可能吗?您可以这样做:
askUser({ // callback
displayText: 'Are you a superman?',
callback: () => freeGift('blue shirt')
});
你会这样称呼它:
customData.callback();
这很容易实现,只需使用()即可执行函数。制作了一个示例应用程序进行阐述