1

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/でマークしたデフォルトに到達する方法はありますか?現在、関数は私のyesまたはnoの答えを受け取らないため、関数がどのように構造化されているかを考慮すると、常に正常に返されます。{success: 'true'}

何か案は?ありがとうございました!

4

1 に答える 1

3

待つべきではありません。代わりにコールバックを使用してください。したがって、あなたの場合、返す代わりにコールバックを実行します{ success: true };

于 2013-01-09T09:01:33.010 に答える