vue中动态添加el-select属性导致视图不更新问题

5 篇文章 0 订阅

问题:项目中碰到了v-model动态添生成的需求,前面的都没问题,但是此时el-select却出问题了,视图不显示
,change事件也有数据过来,找了很多方法,都没用
第一种:this.$set(target , key , value) ,

  • 要更改的数据源
  • key 要更改的具体数据
  • value 重新赋的值
    这个方法我尝试了,但是没有效果,只能改变一部分就不行了

第二种方法: this.$forceUpdate() 强制刷新页面
这个是可行的.

// 在@change,使用$forceUpdate()方法,进行强制刷新.
<el-select
	placeholder="请选择"
	v-model="selectObj[j.en + '-' + i.user_id]"
	@change="$forceUpdate()"
	>
		<el-option
			v-for="v in options"
            :key="v.dutytype_id"
            :label="v.duty_type_name"
            value="v.dutytype_id"
              >
		</el-option>
</el-select>
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 2,使用Element UI的el-table组件内嵌el-select是可以实现的。根据引用内容提供的链接,你可以参考以下步骤来实现el-table内嵌el-select并实现编辑和刷新视图的功能: 1. 首先,确保你已经正确引入VueElement UI库,并在Vue实例注册el-table和el-select组件。 2. 在el-table的列定义,使用scoped slot来定义el-select的显示和编辑模式。 ```html <el-table :data="tableData"> <el-table-column label="姓名" prop="name"> <template slot-scope="scope"> <el-select v-model="scope.row.name" placeholder="请选择"> <el-option label="选项1" value="option1"></el-option> <el-option label="选项2" value="option2"></el-option> <el-option label="选项3" value="option3"></el-option> </el-select> </template> </el-table-column> </el-table> ``` 3. 在Vue实例,定义tableData数组作为el-table的数据源,并初始化数据。 ```javascript new Vue({ el: '#app', data() { return { tableData: [ { name: '张三' }, { name: '李四' }, { name: '王五' } ] }; } }); ``` 4. 现在,当你在el-select选择一个选项时,对应行的name属性会自动更新。同时,el-table会自动刷新视图以反映更改的数据。 ```html <div id="app"> <el-table :data="tableData"> <el-table-column label="姓名" prop="name"> <template slot-scope="scope"> <el-select v-model="scope.row.name" placeholder="请选择"> <el-option label="选项1" value="option1"></el-option> <el-option label="选项2" value="option2"></el-option> <el-option label="选项3" value="option3"></el-option> </el-select> </template> </el-table-column> </el-table> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://unpkg.com/element-ui/lib/index.js"></script> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> <script> new Vue({ el: '#app', data() { return { tableData: [ { name: '张三' }, { name: '李四' }, { name: '王五' } ] }; } }); </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值