欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue中input被賦值后,無法再修改編輯的問題及解決

 更新時間:2022年04月24日 10:18:13   作者:K.P  
這篇文章主要介紹了Vue中input被賦值后,無法再修改編輯的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

input被賦值后,無法再修改編輯

我們直入主題

上面是我司的業(yè)務(wù)邏輯圖,使用elementui框架,如圖,請求數(shù)據(jù)賦值后,不僅有檢測報錯信息,而且還有無法修改編輯的問題。

起初以為是我的設(shè)置的對象問題,困擾我許久。

后來,翻閱了大佬的文章才了解。

 <el-form ref="formInline" :inline="true" :rules="rules" :model="formInline" label-position="right" size="medium">
	<el-form-item label="SIM卡號" prop="icsim">
        <el-input v-model.number="formInline.icsim" maxlength="18" />
    </el-form-item>
    <el-form-item label="ICCID碼" prop="iccid">
        <el-input v-model="formInline.iccid" />
    </el-form-item>
    <el-form-item label="激活時間" prop="start">
        <el-date-picker v-model="formInline.start" value-format="yyyy-MM-dd HH:mm:ss" style="width:200px" placeholder="選擇日期"/>
    </el-form-item>
    <el-form-item label="服務(wù)到期時間" prop="end">
        <el-date-picker v-model="formInline.end" value-format="yyyy-MM-dd HH:mm:ss" style="width:200px" placeholder="選擇日期"/>
    </el-form-item>
</el-form>
export default {
  name: 'formInline',
  data () {
    return {
      formInline: {}
    }
  },
  methods: {
    // vue 請求數(shù)據(jù)
	async getSimData(params) {
      const res = await simInfoByVid(params)
      const { sid, iccid, start, end, storage, icsim, vid } = res.data
      this.formInline.sid = sid
      this.formInline.iccid = iccid
      this.formInline.start = start
      this.formInline.end = end
      this.formInline.storage = storage
      this.formInline.icsim = icsim
      this.formInline.vid = vid
    }
  }
}

上面的代碼是我第一次寫的代碼,使用上面的方法,導(dǎo)致input框或者日期選擇框無法再編輯。

根據(jù)官方文檔定義:如果在實(shí)例創(chuàng)建之后添加新的屬性到實(shí)例上,它不會觸發(fā)視圖更新

根據(jù)大佬的文章,總結(jié)了兩個辦法:

方法一

由此Vue實(shí)例創(chuàng)建時,formInline的屬性名并未聲明,因此Vue就無法對屬性執(zhí)行 getter/setter 轉(zhuǎn)化過程,導(dǎo)致formInline屬性不是響應(yīng)式的,因此無法觸發(fā)視圖更新。

解決的方式有兩種,第一種就是顯示的聲明formInline這個對象的屬性,如:

data () {
    return {
      formInline: {
      	sid: '',
      	iccid: '', 
      	start: '', 
      	end: '', 
      	storage: '', 
      	icsim: '', 
      	vid: ''
		}
    }

方法二

使用Vue的全局API: $set()賦值:

async getSimData(params) {
      const res = await simInfoByVid(params)
      const { sid, iccid, start, end, storage, icsim, vid } = res.data
      this.$set(this.formInline, 'sid', sid)
      this.$set(this.formInline, 'iccid', iccid)
      this.$set(this.formInline, 'start', start)
      this.$set(this.formInline, 'end', end)
      this.$set(this.formInline, 'storage', storage)
      this.$set(this.formInline, 'icsim', icsim)
    }

vue綜合問題歸納input框賦值后不能進(jìn)行編輯

項(xiàng)目場景

項(xiàng)目場景:前端實(shí)現(xiàn)查看編輯功能的時候會出現(xiàn), input框賦值后input框不能進(jìn)行編輯,編輯之后自動取消,驗(yàn)證無法進(jìn)行取消

問題描述

數(shù)據(jù)代碼:

<el-textarea
                  v-model="drawerForm.msg"
                  placeholder="請輸入功能描述"
                  :rows="3"
                  allowClear
                ></el-textarea>

js:

export default {
? name: 'drawerForm',
? data () {
? ? return {
? ? ? drawerForm: {}
? ? }
? },
? methods: {
? ? handleEditHelloForm () {
? ? ? ? // 模擬編輯功能需要數(shù)據(jù)回顯
? ? ? ? this.helloForm.msg = 'hello 我是drawerForm中的msg值'
? ? }
? }
}

原因分析

  • 空input框進(jìn)行賦值后,不存在setter和getter方法,導(dǎo)致無法實(shí)現(xiàn)雙向綁定
  • 由此Vue實(shí)例創(chuàng)建時,drawerForm.屬性名并未聲明,因此Vue就無法對屬性執(zhí)行 getter/setter 轉(zhuǎn)化過程,導(dǎo)致drawerForm屬性不是響應(yīng)式的,因此無法觸發(fā)視圖更新。

解決方案

第一種就是顯示的聲明drawerForm這個對象的屬性,如: 

  data () {
    return {
      drawerForm: {
         msg:""
      }
    }
  },

使用vue的全局方法: this.$set(data, property, value)

data為要修改的對象,property為要添加的屬性,value就是這個屬性的值? ? handleEditHelloForm () {
? ? ? ? // 模擬編輯功能需要數(shù)據(jù)回顯
? ? ? ? Vue.set(this.helloForm,'msg', 'hello 我是drawerForm中的msg')
? ? }

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • vue 實(shí)現(xiàn)上傳按鈕的樣式的兩種方法

    vue 實(shí)現(xiàn)上傳按鈕的樣式的兩種方法

    這篇文章主要介紹了vue 定制上傳按鈕的樣式的兩種方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • 詳解無限滾動插件vue-infinite-scroll源碼解析

    詳解無限滾動插件vue-infinite-scroll源碼解析

    這篇文章主要介紹了詳解無限滾動插件vue-infinite-scroll源碼解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • vue 動態(tài)設(shè)置瀏覽器標(biāo)題的方法詳解

    vue 動態(tài)設(shè)置瀏覽器標(biāo)題的方法詳解

    這篇文章主要為大家介紹了vue動態(tài)設(shè)置瀏覽器標(biāo)題的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 在antd4.0中Form使用initialValue操作

    在antd4.0中Form使用initialValue操作

    這篇文章主要介紹了在antd4.0中Form使用initialValue操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Vue中的computed和watch用法及區(qū)別

    Vue中的computed和watch用法及區(qū)別

    Vue中的computed和watch都可以監(jiān)聽數(shù)據(jù)變化,但computed主要用于計算派生屬性,而watch則用于監(jiān)聽特定數(shù)據(jù)變化并執(zhí)行回調(diào)函數(shù)。兩者使用時需要注意區(qū)別
    2023-04-04
  • vue動態(tài)加載本地圖片的處理方法

    vue動態(tài)加載本地圖片的處理方法

    最近遇到了個問題,用v-bind動態(tài)綁定img的src,圖片加載不出來,所以下面這篇文章主要給大家介紹了關(guān)于vue動態(tài)加載本地圖片的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • vue使用vue-json-viewer展示JSON數(shù)據(jù)的詳細(xì)步驟

    vue使用vue-json-viewer展示JSON數(shù)據(jù)的詳細(xì)步驟

    最近在開發(fā)一個公司的投放管理系統(tǒng)的操作日志模塊,要查看某條操作日志的請求參數(shù),要將請求的參數(shù)以JSON格式的形式展示出來,下面這篇文章主要給大家介紹了vue使用vue-json-viewer展示JSON數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • vue項(xiàng)目環(huán)境變量配置的實(shí)現(xiàn)方法

    vue項(xiàng)目環(huán)境變量配置的實(shí)現(xiàn)方法

    這篇文章主要介紹了vue項(xiàng)目環(huán)境變量配置的實(shí)現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • elementui+vue+axios實(shí)現(xiàn)文件上傳本地服務(wù)器

    elementui+vue+axios實(shí)現(xiàn)文件上傳本地服務(wù)器

    這篇文章主要為大家詳細(xì)介紹了elementui+vue+axios實(shí)現(xiàn)文件上傳本地服務(wù)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • vue中v-for循環(huán)給標(biāo)簽屬性賦值的方法

    vue中v-for循環(huán)給標(biāo)簽屬性賦值的方法

    這篇文章主要介紹了vue中v-for循環(huán)給標(biāo)簽屬性賦值的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10

最新評論