仕様
- タブ内の値を編集し保存することができる
- 編集中のデータがあった場合、確認ダイアログにてタブの切り替えをキャンセルする
- 以下イメージ
使用技術
Nuxt.js(Vue.js) + TypeScript + ElementUI
困っていること
- キャンセルを押してもタブが切り替わってしまう
実装
- タブを離れる前に
checkEdited
というメソッドが走る。javascript側ソースのeditedItems
に配列が格納されていれば編集中ということなので確認ダイアログを出す仕組み。 - javascript側ソース内の
bool
の値がfalseのとき、falseを返却すればタブ切り替えがキャンセルされる認識だったが普通にタブが切り替わってしまう。 - ご指摘いただけると幸いです。
html
1 <el-tabs 2 v-model="activeTab" 3 :before-leave="checkEdited" 4 @tab-click="handleTabClick" 5 > 6 <el-tab-pane 7 v-for="(item, index) in tabs" 8 :key="index" 9 :name="index.toString()" 10 :label="item.tabName" 11 ></el-tab-pane> 12 </el-tabs>
javascript
1async checkEdited() { 2 // editedItemsに編集中の項目が入る 3 const editedItems = await this.geItemsEdited() 4 if (editedItems.length !== 0) { 5 // ここでダイアログでキャンセルを押すとタブが切り替わってしまう 6 const bool = confirm('確認メッセージ')) 7 if (!bool) { 8 return false 9 } 10 } 11 } 12
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。