解决vue 更改计算属性后select选中值不更改的问题


Posted in Javascript onMarch 02, 2018

先上代码:

//...
<body>
  <div id="qwe">
    <select v-model="selected">
      <option v-for="item in da" :value="item.value">{{item.value}}</option>
    </select>
    <span>{{selected}}</span>
  </div>
  <script>
    var dt = [{
      value: '111',
      label: 'aaa'
    }, {
      value: '222',
      label: 'bbb'
    }, {
      value: '333',
      label: 'ccc'
    }, {
      value: '444',
      label: 'ddd'
    }, {
      value: '555',
      label: 'fff'
    }];
    var vm = new Vue({
      el: '#qwe',
      data: {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        selected: ''
      },
      computed: {
        da: function () {
          var _self = this;
          return _self.options.filter(function (item) {
            return +item.value.split('')[2] > 2;
          });
        }
      }
    })
  </script>
</body>
</html>

上面的代码就是采用vue的v-for指令绑定数据生成option,但今天学习写的时候突然发现一个问题,即将计算属性da绑定到v-for指令上,然后再替换源数据options,结果da计算属性正确,而selected属性并没有变化。也就是页面上的下拉框在非展开情况下的文字并没有改变,如下图:

解决vue 更改计算属性后select选中值不更改的问题

这里可以看到下拉框的option已经更新,然而selected属性并没有随之同步更新,因为它缓存了上次选择的值。

这里如此设计不知是否合理,因为我用这种用法用的比较少。

但有问题就要解决。在computed中的计算属性中增加selected='',每次更新依赖则重置selected属性。

以上这篇解决vue 更改计算属性后select选中值不更改的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用jquery实现学校的校历(asp.net+jquery ui 1.72)
Jan 01 Javascript
js 自定义个性下拉选择框示例
Aug 20 Javascript
AngularJS中的模块详解
Jan 29 Javascript
Python脚本后台运行的几种方式
Mar 09 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
Nov 16 Javascript
js格式化输入框内金额、银行卡号
Feb 01 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
Sep 08 Javascript
简单实现js菜单栏切换效果
Mar 04 Javascript
详解vue前后台数据交互vue-resource文档
Jul 19 Javascript
微信小程序canvas拖拽、截图组件功能
Sep 04 Javascript
java和js实现的洗牌小程序
Sep 30 Javascript
JS数据类型分类及常用判断方法
Nov 19 Javascript
完美解决iview 的select下拉框选项错位的问题
Mar 02 #Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
Mar 02 #Javascript
vue element-ui table表格滚动加载方法
Mar 02 #Javascript
浅谈React组件之性能优化
Mar 02 #Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
Mar 02 #Javascript
vue slot 在子组件中显示父组件传递的模板
Mar 02 #Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 #Javascript
You might like
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
vue proxyTable 接口跨域请求调试的示例
2017/09/12 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
[09:37]DOTA2卡尔工作室 英雄介绍圣堂刺客篇
2013/06/13 DOTA
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
python比较2个xml内容的方法
2015/05/11 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
python使用tkinter实现简单计算器
2018/01/30 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
Python双向循环链表实现方法分析
2018/07/30 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
2014年小班元旦活动方案
2014/02/16 职场文书
教育英语专业毕业生的求职信
2014/03/13 职场文书
cf收人广告词
2014/03/14 职场文书
优质服务演讲稿
2014/05/14 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
员工家属慰问信
2015/03/24 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
只用20行Python代码实现屏幕录制功能
2021/06/02 Python