亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Vue | Element:請教 el-form 的 :model 屬性的作用

Vue | Element:請教 el-form 的 :model 屬性的作用

慕森卡 2019-04-18 17:15:59
<template>    <div>        <el-form :model="form" :rules="form" label-width="80px">            <el-form-item label="姓名">                <el-input v-model="form.name"></el-input>            </el-form-item>        </el-form>    </div></template><script>    export default {        name: 'Father',        data () {            return {                form: {                    name: 'Tim'                 }            }        }    }</script>el-form 設置了 :model、:rules 兩個屬性,:rules 似乎是后續表單校驗時需要使用,那 :model 屬性的作用是什么呢?官方文檔將 el-form 的 model 屬性描述為"表單數據對象",但如果不配置該屬性,僅通過 v-model="form.name" 為表單域設置值已經可以實現數據綁定,為什么還要為 el-form 配置 model 這個屬性呢?---------------------------------- 分割線 -----------------------------------------------<template>    <div>        <el-form :rules="rules" label-width="80px">            <el-form-item label="姓名" prop="name">                <el-input v-model="form.name"></el-input>            </el-form-item>        </el-form>    </div></template><script>    export default {        name: 'App',        data () {            return {                form: {                    name: 'Tim'                 },                rules: {                    name: [{ required: true, message: '姓名不能為空', trigger: 'blur' }]                }            }        }    }</script>
查看完整描述

2 回答

?
wsb200514

TA貢獻2條經驗 獲得超2個贊

以下表單指input或el-input這些,而el-form或el-form-item則會直接寫明。

1、確實,在表單中有個v-model綁定后,el-form的model有沒有一點都不影響,你可以刪除不寫。

2、目前el-form的model主要用表單驗證的,也就是配合el-form的rules和el-form-item的prop來使用的。不信的話,你可以增加一個rules和prop(為了調用驗證方法,也el-form也加一個ref屬性,相當于id或者class選擇器的意思),但是不寫model,然后驗證的話,會提示缺少model,導致無法驗證成功。

所以el-form的model干嘛用的?目前看來主要是為了配合表單驗證。里面的邏輯大概是,在el-form-item上寫一個prop,這個prop左手對應著數據源(即用model.prop找到對應的數據源),右手對應著驗證規則(即用rules.prop找到對應的規則)。然后就快樂地驗證去了。

至于為什么不能將el-form的model+el-form-tem的prop這樣的組合和表單中的v-model的用法合二為一,最直觀的原因就是:這幾個玩意是加在不同的標簽上的啊,一種是針對表單的雙向綁定,一種是針對el-form和el-form-item的驗證(雖然這個驗證的數據源最終就是表單那邊雙向綁定得來的);其次,你感覺一下,一邊是利用雙向綁定提供數據,另一邊是拿到數據和規則進行驗證,這兩邊沒有很死板地捆綁在一起啊,類似于耦合度不高,未來自定義或者修改的話會方便很多。

查看完整回答
2 反對 回復 2019-08-14
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

與數據綁定無關,rules驗證是對model對象的驗證,跟你在form中綁定了哪些數據無關


查看完整回答
反對 回復 2019-05-19
  • 2 回答
  • 0 關注
  • 18559 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號