Javascript Angular2模式确认回调
我在Angular 2项目中编程。我有几个组件,我想在其中使用相同的对话框确认。因此,我将确认代码放在一个单独的类中。该对话框用于检查用户是否希望继续或保存数据 我用Angular2模式来表示这个瞳孔 当按下确认按钮上的任一按钮时,我希望能够将此答案返回给调用此确认的组件,以便在那里执行某些操作 我的代码如下所示: 这是我从组件调用的函数:Javascript Angular2模式确认回调,javascript,angular,modal-dialog,bootstrap-modal,Javascript,Angular,Modal Dialog,Bootstrap Modal,我在Angular 2项目中编程。我有几个组件,我想在其中使用相同的对话框确认。因此,我将确认代码放在一个单独的类中。该对话框用于检查用户是否希望继续或保存数据 我用Angular2模式来表示这个瞳孔 当按下确认按钮上的任一按钮时,我希望能够将此答案返回给调用此确认的组件,以便在那里执行某些操作 我的代码如下所示: 这是我从组件调用的函数: this._popup.confirmSaveTemp(this.modal); 这是带有确认代码的功能。目前,我可以在我放置“待办事项”的两个位置打印“
this._popup.confirmSaveTemp(this.modal);
这是带有确认代码的功能。目前,我可以在我放置“待办事项”的两个位置打印“确定”或“取消”
confirmSaveTemp(模式、目标、参数){
控制台日志(目标);
modal.confirm()
.size('lg')
.isBlocking(真)
.showClose(假)
.键盘(27)
.title(“警告”)
.身体(`
由于以下一个或多个原因,某些字段已标记为红色:
- 您忘记填写所有输入字段
- 输入的值过高或过低,不切实际
- 使用非法字符(例如,为某个年龄段的人输入字母而不是数字)
请确保您正确填写了表格
如果已完成输入此页面的所有值,并希望永久保存,请单击“继续”。
如果希望在其他时间输入剩余值,请单击“临时保存”
`)
.footerClass('defaultPopupFooter')
.okBtn('继续')
.cancelBtn('临时保存')
.okBtnClass('btn btn success')
.cancelBtnClass('btn btn warning')
.open()
.然后((结果预测)=>{
resultPromise.result.then((result)=>{
//TODO-调用保存函数
},
() => {
//TODO-保存温度
} );
});
}
*问题:如何告知“父”组件此对话的响应是什么,或者如何从“父”组件调用函数*您可以从父类将函数作为如下参数传递:
private okCallback() {
// do stuff on ok
}
private cancelCallback() {
// do stuff on cancel
}
openModal() {
// ...
this._popup.confirmSaveTemp(
this.modal,
target,
param,
this.okCallback.bind(this),
this.cancelCallback.bind(this)
);
}
在confirmSaveTemp
中:
confirmSaveTemp(modal, target, param, okCallback, cancelCallback){
console.log(target);
modal.confirm()
// ...
.open()
.then( (resultPromise) => {
resultPromise.result.then( (result) => {
//TODO - CALL SAVE FUNCTION
},
() => {
//TODO - SAVE TEMP
} );
})
// on OK click
.then(okCallback)
// on Cancel click
.catch(cancelCallback);
}
confirmSaveTemp(modal, target, param, okCallback, cancelCallback){
console.log(target);
modal.confirm()
// ...
.open()
.then( (resultPromise) => {
resultPromise.result.then( (result) => {
//TODO - CALL SAVE FUNCTION
},
() => {
//TODO - SAVE TEMP
} );
})
// on OK click
.then(okCallback)
// on Cancel click
.catch(cancelCallback);
}