vue 獲取頁面詳情後 切換頁面時 如何監聽使用者是否修改過資訊

Cynthia嬈墨舊染發表於2018-07-06

可以用 beforeRouteLeave 和 updated 來判斷。export default {

    name: `supplier`,
    components:{cmtWrap,cmtContent},
    props: [],
    beforeRouteLeave (to, from, next) {//離開當前頁
      if(this.updateCount > 1){ //更新次數大於1 說明使用者修改過當前頁資料 因為獲取詳情時會更新一次
        if(from.path.includes(`nowPath`)){
          this.$confirm(`即將離開當前頁,請確定是否儲存當前資料?`, `離開當前頁`, {
            confirmButtonText: `儲存`,
            cancelButtonText: `不儲存`,
            type: `warning`
          }).then(() => {
            //...todo 這裡調介面 儲存資料
            next()
          }).catch(() => {next()});
        }else{next()}
      }else{
        next()
      }
    },
    updated:function () {
      this.updateCount = this.updateCount + 1
    },
    data() {
      return {
        updateCount:0,//判斷使用者是否更新當前資料
      }
    },
    computed:{},
    watch:{},
    mounted:function () {
    this.getInitData()
  }, methods: {
    getInitData:function(){
    //...todo  頁面進來,先獲取預設資料

    }

  },
  }

 

相關文章