解决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 相关文章推荐
让广告代码不再影响你的网页加载速度
Jul 07 Javascript
JavaScript 以对象为索引的关联数组
May 19 Javascript
css与javascript跨浏览器兼容性总结
Sep 15 Javascript
浅谈jQuery的offset()方法及示例分享
Jul 17 Javascript
jQuery实现动态添加和删除一个div
Aug 12 Javascript
详解JavaScript时间格式化
Dec 23 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
Feb 19 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
Feb 25 Javascript
window.open打开窗口被拦截的快速解决方法
Aug 04 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
Dec 08 Javascript
js判断传入时间和当前时间大小实例(超简单)
Jan 11 Javascript
微信小程序左右滚动公告栏效果代码实例
Sep 16 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获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
php实现生成验证码实例分享
2016/04/10 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
2016/05/17 PHP
php之可变函数的实例详解
2017/09/13 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
用Python中的字典来处理索引统计的方法
2015/05/05 Python
解决python os.mkdir创建目录失败的问题
2018/10/16 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
python Shapely使用指南详解
2020/02/18 Python
python 星号(*)的多种用途
2020/09/21 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
春秋淹城导游词
2015/02/11 职场文书
步步惊心观后感
2015/06/12 职场文书
工作时间证明
2015/06/15 职场文书
婚宴领导致辞
2015/07/28 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python