Vant-uiコンポーネント呼び出しDialog弾窓非同期閉鎖
需要説明:
需要説明:公式ドキュメントはコンポーネント呼び出し方式であり、関数呼び出し方式でもあります.私は1つのとても簡単なことが必要です:クリックして弾窓の表示を操作した後に、私は1つのフォームに記入して、フォームの検査が通過した後に、更にAPIインタフェースを呼び出して、成功した後に帰って、弾窓を閉じます.
簡単なもので、element-uiは便利で、ここでは呆然としていて、最初に作ったばかりで、弾窓が閉まって、非同期インタフェース呼び出しの結果に戻りました.ネットのスピードが遅いので、本当によくありません.
正しい解決方法1:
キー、
最初はフォームチェックを
私はonBeforeCloseの中で、confirmの操作を確認することをクリックして、done(false)、弾窓が閉じることを阻止します
フォームチェックと非同期インタフェースリクエストが成功した後に弾窓を閉じるのは、
このように修正したら、キャンセルをクリックして、直接閉じることができます.確認をクリックすると、フォームチェックが必要で、チェックに成功した後、ajax非同期リクエストが送信され、インタフェースが成功に戻った後、弾窓が閉じられます.
需要説明:公式ドキュメントはコンポーネント呼び出し方式であり、関数呼び出し方式でもあります.私は1つのとても簡単なことが必要です:クリックして弾窓の表示を操作した後に、私は1つのフォームに記入して、フォームの検査が通過した後に、更にAPIインタフェースを呼び出して、成功した後に帰って、弾窓を閉じます.
簡単なもので、element-uiは便利で、ここでは呆然としていて、最初に作ったばかりで、弾窓が閉まって、非同期インタフェース呼び出しの結果に戻りました.ネットのスピードが遅いので、本当によくありません.
正しい解決方法1:
<van-dialog
v-model="showDialog"
title=" "
show-cancel-button
:before-close="onBeforeClose"
@confirm="handleConfirm"
>
<van-form ref="myform">
<van-field
v-model="attendanceName"
name="name"
label=" "
placeholder=" "
:rules="[
{
required: true, message: ' ' }
]"
/>
</van-form>
</van-dialog>
キー、
showDialog
制御表示非表示、before-close
制御閉じる前のコールバック、confirm
弾窓クリック確認ボタントリガのイベント、ref
formインスタンスを取得します.最初はフォームチェックを
before-close
に置いたが、実現した結果は間違っていた. onBeforeClose(action, done) {
if (action === "confirm") {
return done(false);
} else {
//
this.$refs["myform"].resetValidation("name");
this.name= undefined;
return done();
}
},
私はonBeforeCloseの中で、confirmの操作を確認することをクリックして、done(false)、弾窓が閉じることを阻止します
フォームチェックと非同期インタフェースリクエストが成功した後に弾窓を閉じるのは、
handleConfirm
操作に置かれ、 //
handleConfirm() {
this.$refs["myform"]
.validate()
.then(() => {
let para = {
data: {
name: this.name,
},
};
ajaxAdd(para).then(() => {
this.showDialog = false; //
this.$toast.success(" ");
this.name= undefined;
this.onRefresh();
});
})
.catch(() => {
});
},
このように修正したら、キャンセルをクリックして、直接閉じることができます.確認をクリックすると、フォームチェックが必要で、チェックに成功した後、ajax非同期リクエストが送信され、インタフェースが成功に戻った後、弾窓が閉じられます.