1. 程式人生 > 程式設計 >VUE table表格動態新增一列資料,新增的這些資料不可以編輯(v-model繫結的資料不能實時更新)

VUE table表格動態新增一列資料,新增的這些資料不可以編輯(v-model繫結的資料不能實時更新)

一、問題

用elementUi橫著增加一行資料沒毛病,可以操作
新增一列,這新增的這一列, 第一次去賦值的時候值是改了, 但沒生效
點選下一行時 值就變過來

在這裡插入圖片描述

二、原因

橫向新增 是複製上面的某一條資料來的,因為data裡面有這些屬性的定義,所以橫向新增沒問題

而縱向新增的資料,因為沒有事先在 el-select v-modle="" 裡面定義好欄位,定義好的option是通過v-for出來的(option是寫死的就不會有這個問題),就會出現選擇後,select元素上無法展示,但是其實數值已經繫結上去了的後果,即:

v-model繫結資料不實時更新

三、解決

使用 vm.$set 例項方法

// eg:this.$set(this.someObject,'b',2)

專案code

ps:vue-table 新增動態鎖定和解鎖列功能 很強大

為什麼要寫下這篇文章,因為我在網上找不到,關於vue-table 新增動態鎖定和解鎖列功能 的介紹
自己就嘗試著研究了下 。

我們都知道 鎖定列 只要跟 <vxe-table-column type="seq" width="60" align="center" fixed="left"/>
一樣 ,新增 fixed=“left” 或者 fixed=“right” 就可以向左或向右 鎖定, 但這畢竟 不能動態鎖定 。
首先我要的效果是 :

這是站在官方文件實現 複雜excel 篩選功能的基礎上進行的

在這裡插入圖片描述

廢話不多說,直接擊要害。

FilterExcel.vue 裡邊

在相應的位置 新增程式碼 :

<li class="me-menu" @click="onLock('left')"> <span>左鎖定此列</span> </li> <li class="me-menu" @click="onLock('right')"> <span>右鎖定此列</span> </li> <li class="me-menu" @click="offLock"> <span>解除鎖定</span> </li>

然後就是在方法區新增方法:offLock() { const { $panel,$table,$columnIndex } = this.params $table.closeFilter() $panel.$options.parent.tableColumn[$columnIndex].fixed = undefined $table.refreshColumn() },onLock(val) { const { $panel,$columnIndex } = this.params $table.closeFilter() $panel.$options.parent.tableColumn[$columnIndex].fixed = '' + val + '' $table.refreshColumn() },

到此 功能實現。

頁面元件引用 :FilterExcel.vue 實際開發中都是封裝成元件 方便使用

<vxe-table-column
  field="platform"
  title="平臺"
  width="100px"
  align="center"
  sortable
  :filters="[{data: {vals: [],sVal: '',fMenu: '',f1Type:'',f1Val: '',fMode: 'and',f2Type: '',f2Val: ''}}]"
  :filter-render="{name: 'FilterExcel'}"
  />

總結

到此這篇關於VUE table表格動態新增一列資料,新增的這些資料不可以編輯(v-model繫結的資料不能實時更新)的文章就介紹到這了,更多相關vue table 動態新增資料內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!