写bug小白 2023-07-12 14:46 采纳率: 95.5%
浏览 22
已结题

如何实现el-form-item里的循环项在没有点击确认前不同步在页面上

el-form-item里的循环条件每次编辑操作时都会同步展示在页面上(在没有点击保存的情况下),而且点击取消按钮后还会展示在页面上,如何实现点击确认才展示

img


代码如下


<template>
  <div>
    <el-table :data="tableData">
        <el-table-column label="tags" prop="tags">
            <template slot-scope="scope">
                <el-tag v-for="item in scope.row.tags" :key="item.index">{{ item.key + item.value }}</el-tag>
            </template>
        </el-table-column>
        <el-table-column label="操作">
            <template slot-scope="scope">
                <el-button @click="handleUpdate(scope.row)">操作</el-button>
            </template>
        </el-table-column>
    </el-table>
    <el-dialog title="title" :visible.sync="open">
        <el-form :model="form" ref="form">
            <el-form-item label="tags" prop="tags">
                <el-button @click="addInput">添加</el-button>
                <div v-for="(item,index) in form.tags" :key="index">
                    <el-row :gutter="10">
                        <el-col :span="8">
                            <el-input v-model="item.key" placeholder="请输入key"></el-input>
                        </el-col>
                        <el-col :span="8">
                            <el-input v-model="item.value" placeholder="请输入value"></el-input>
                        </el-col>
                        <el-col :span="7" style="float: right">
                            <el-button @click="removeInput(index)">删除</el-button>
                        </el-col>
                    </el-row>
                </div>
            </el-form-item>
        </el-form>
        <div slot="footer">
            <el-button @click="submitForm">确认</el-button>
        </div>
    </el-dialog>
  </div>
</template>

<script>
export default {
    data(){
        return{
            open:false,
            form:{},
            input1:'',
            input2:'',
            tableData:[
                {
                    tags:[
                        {key:'cpu',value:''}
                    ]
                },
                {
                    tags:[]
                }
            ]
        }
    },
    methods:{
        addInput() {
            this.form.tags.push({key:'',value:''})
        },
        removeInput(index) {
            this.form.tags.splice(index, 1); 
        },
        handleUpdate(row){
            this.open = true
            this.form = {...row}
            console.log(this.form)
        },
        submitForm(){
            console.log(this.form)
        }
    }
}
</script>

  • 写回答

2条回答 默认 最新

  • 二九筒 2023-07-12 16:35
    关注

    数据绑定用v-bind单向绑定;只有在赋值后才会在输入框内显示出来

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月1日
  • 已采纳回答 7月24日
  • 创建了问题 7月12日

悬赏问题

  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)