在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  HTML/ vue實現(xiàn)在新增單位的表單彈框中點擊新增子公司功能

vue實現(xiàn)在新增單位的表單彈框中點擊新增子公司功能

問題描述

原型設計上需求是在新增一個公司的時候,在新增公司彈出框的表單中再添加一個新增該公司子公司的功能,而且這個增加子公司的功能每次點擊都會增加一段這個子公司信息的輸入框,也就是說如果點擊10次,下面應該有10個關于子公司輸入框的內(nèi)容,如下圖所示:
點擊第一次的時候:

clipboard.png

點擊第二次的時候會在增加一行關于子公司的信息:

clipboard.png

相關代碼

vue的html部分:

    <el-row :gutter="20">
        <el-col :span="24">
          <el-button type="primary" @click="creatSubcompany" > 新增子公司 </el-button>
        </el-col>
      </el-row>
      <div class="subcompany"  v-for="index in subcompanyList" :key="index">
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item label="子公司名稱">
              <el-input type="text" v-model="subcompany.name"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="負責人">
              <el-input type="text" v-model="subcompany.leader"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="聯(lián)系電話">
              <el-input type="text" v-model="subcompany.tel"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </div>
      
    js部分:
    
    export default {
          data() {
            return {     
              subcompany: {
                name: '',
                leader: '',
                tel: '',
                provice: '',
                city: '',
                region: ''
              },      
              subcompanyList: []
            }
          },
          methods: {
             creatSubcompany() {
              this.subcompanyList.push({
                name: '',
                leader: '',
                tel: '',
                provice: '',
                city: '',
                region: ''
              })
              console.log(this.subcompanyList)
            }            
          }
        }

雖然這種情況下新增是可以實現(xiàn)效果,但是報如下錯誤:

clipboard.png

如果我將 :key="index" 去掉的話倒是不報錯,但是不應該是這樣,另外還有一個問題,這樣新增的過程中表單的v-model綁定的鍵名稱相同,所以輸入框中的值是寫一個,多個值都相同, 還有一點就是不清楚這個值要符合獲取

你期待的結(jié)果是什么?實際看到的錯誤信息又是什么?

期待的結(jié)果是 : 可以這樣點擊新增子公司,每次點擊新增的面板中的 輸入框中的值輸入都對其他的子公司不產(chǎn)生影響,并且可以正常的獲取到這些子公司的值。

目前這塊自己想不太通,轉(zhuǎn)換成vue的思想很多情況就不清楚該如何處理,所以在此求教,請各位大神不吝賜教。
謝謝!

回答
編輯回答
神曲

在 vue 里,:key 的作用是方便 vue 辨識 DOM,這樣,如果在重新渲染時遇到和之前完全相等的 key,就可以不用渲染,節(jié)省時間。所以寫的時候就要用簡單可識別的值,比如 id,或者索引。

你的問題是 index in list 得到的是 list 里的某個對象,而不是真正的索引,你可以 (subCompany, index) in list 就可以了。

還是建議好好看兩遍文檔。

2017年12月16日 22:50
編輯回答
解夏

報錯信息說了,請使用一個primitive 值作為key。v-for="index in list",中得到的index是一個對象,不是一個primitive值。你可能是想這樣子v-for=“(item,index) in list”

2017年6月15日 19:07
編輯回答
綰青絲
v-for="subcompany in subcompanyList" :key="subcompany.name"

然后js部分去掉data中的subcompany對象。

2018年5月20日 05:43