時間描述
2019-11-30
建檔資料管理頁面一般會有新增和修改兩個功能。為了使**簡潔,兩個功能使用的是同乙個對話方塊:
問題在於:當先單擊「編輯」時,表單繫結的資料物件被替換成後台資料;關掉對話方塊,再單擊「新建」時,表單仍舊使用的是之前編輯時產生的資料。因此,需要在關閉對話方塊時,將表單的資料重置為最初狀態。
之前第一次接觸vue的時候,獲悉其有乙個例項字段$options
,會在元件例項化時快取原始的data
物件。借助物件合併技術可輕鬆實現表單資料重置,如:
object.assign(target, source...)
將source
物件的屬性賦給target
物件;
var obj1 =
;var obj2 =
;object.
assign
(obj1, obj2)
;console.
log(obj1)
;// 輸出:
...
物件展開運算子,能夠將所有物件展開的屬性合併到乙個新的物件中,相同的屬性以最後展開的那個為準。var obj1 =
;var obj2 =
;console.
log();
// 合併多個物件到新物件中。輸出:
console.
log(obj1)
;// 不影響原物件。輸出:
var obj3 =
;console.
log(obj3)
;// 拷貝單個物件。輸出:
obj3.a =2;
console.
log(obj1)
;// 對新物件的修改不會影響原物件。輸出:
除此之外,vue自身也提供了介面this.$ref['xx'].resetfields()
。
在此之前,我還手寫過乙個簡單的、類似jquery.extend()
的物件合併函式,出現過合併後無法響應的情況。但當時沒有弄清楚vue的響應式資料,沒有留下筆記。
利用該函式將表單資料物件的初始值重新賦給該物件:
object.assign(this.dialog.form, this.$options.data().dialog.form);
this.dialog.form = ;
這種方式有點麻煩。
在表單上需要填寫ref
、model
屬性
...
表單元素需要填寫prop
屬性
...
呼叫重置函式
this.$refs['moduledlgform'].resetfields();
表單重置reset
最近一直在做各種頁面的 增刪改查 只是在做新增功能的時候,自己一直在使用 reset來清空form表單,原以為這樣子的清空方法是萬無一失的,可惜最終還是在進行 修改 操作完了之後再 新增 的時候,就會報錯,於是自己的解決方法便是在使用新增方法的時候,先把隱藏域傳過來的id刪掉,這樣才不會再程式執行過...
重置表單(vue elementui)
第一種 在methods下的具體方法中直接乙個乙個地將表單繫結的值賦值為空 最笨的方法,只適用於僅幾個繫結值的情況下 第二種 elementui官網的方法 從這裡直接進入官網表單相關位置 model ruleform rules rules ref ruleform label width 100p...
vue 重置表單
vue 中有許多元件的form表單自帶了重置表單的方法,這個重置表單具體有什麼作用呢 以element ui框架為例,form表單中,我們可能會給form表單其中的一項或者某幾項增加校驗規則,但是我們在儲存表單後,再次點開表單,發現校驗規則的提示不會消失,那就是因為我們沒有重置表單的原因啦 其實重置...