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

Vue中input被賦值后,無(wú)法再修改編輯的問(wèn)題及解決

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

input被賦值后,無(wú)法再修改編輯

我們直入主題

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

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

后來(lái),翻閱了大佬的文章才了解。

 <el-form ref="formInline" :inline="true" :rules="rules" :model="formInline" label-position="right" size="medium">
	<el-form-item label="SIM卡號(hào)" 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="激活時(shí)間" 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ù)到期時(shí)間" 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 請(qǐng)求數(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
    }
  }
}

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

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

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

方法一

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

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

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綜合問(wèn)題歸納input框賦值后不能進(jìn)行編輯

項(xiàng)目場(chǎng)景

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

問(wèn)題描述

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

<el-textarea
                  v-model="drawerForm.msg"
                  placeholder="請(qǐng)輸入功能描述"
                  :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)致無(wú)法實(shí)現(xiàn)雙向綁定
  • 由此Vue實(shí)例創(chuàng)建時(shí),drawerForm.屬性名并未聲明,因此Vue就無(wú)法對(duì)屬性執(zhí)行 getter/setter 轉(zhuǎn)化過(guò)程,導(dǎo)致drawerForm屬性不是響應(yīng)式的,因此無(wú)法觸發(fā)視圖更新。

解決方案

第一種就是顯示的聲明drawerForm這個(gè)對(duì)象的屬性,如: 

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

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

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

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

相關(guān)文章

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

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

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

    詳解無(wú)限滾動(dòng)插件vue-infinite-scroll源碼解析

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

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

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

    在antd4.0中Form使用initialValue操作

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

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

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

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

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

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

    最近在開(kāi)發(fā)一個(gè)公司的投放管理系統(tǒng)的操作日志模塊,要查看某條操作日志的請(qǐng)求參數(shù),要將請(qǐng)求的參數(shù)以JSON格式的形式展示出來(lái),下面這篇文章主要給大家介紹了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)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    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ì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • vue中v-for循環(huán)給標(biāo)簽屬性賦值的方法

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

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

最新評(píng)論