Я использую Angular Material Dialog , я хочу передать опциональную функцию обратного вызова и выполнить, если пользователь щелкнет OK button
. Могу ли я узнать, как это реализовать?
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!'
});
Как PASS обратный вызов в customData.callback
и как вызвать и выполнить функцию?
Другими словами, как передать функцию в «переменную» и выполнить «переменную» позже с соответствующим контекстом?
Возможно ли это?