我正在使用 Extjs,版本 4.0.7 开发一个项目,但我遇到了问题。我有一个在保存之前验证数据有效性的功能。它看起来像这样:
me.validateEmployeeSystemSettingsOnSave = function (a,b,c) {
switch (c) {
case 1:{
if(expression)
return {success: false}
if(expression2){
Ext.Msg.show({
title:'',
msg:'',
buttons: Ext.Msg.YESNO,
icon: Ext.Msg.QUESTION,
fn: function (btn) {
if (btn == 'yes') {
return { success: true };
}
else if (btn == 'no') {
return { success: false};
}
},
modal: true
});
}
else return {success: true}; /*problem line*/ //this is the default answer, when function will
//not enter any expression and return {success: true}
}
case 2:{
}
}
我上面的函数在 onSave 函数中调用,如下所示:
var response = me.validateEmployeeSystemSettingsOnSave(dsa,ssa,daa){
if(response.success){
this.save();
}
else{
}
}
我的问题是:有什么方法可以等待 Ext.msg.show() 的回答,然后才能达到return
我用 /问题行/ 标记的默认值?因为现在该函数不接受我是或否的回答,所以它总是返回{success: 'true'}
,这是正常的,考虑到函数的结构。
有任何想法吗?谢谢!