解决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 相关文章推荐
通过event对象的fromElement属性解决热区设置主实体的一个bug
Dec 22 Javascript
js同源策略详解
May 21 Javascript
javascript编写贪吃蛇游戏
Jul 07 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
Aug 31 Javascript
跟我学习javascript的定时器
Nov 19 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
Aug 18 Javascript
bootstrap fileinput 插件使用项目总结(经验)
Feb 22 Javascript
详解EasyUi控件中的Datagrid
Aug 23 Javascript
JavaScript编写棋盘覆盖代码详解
Aug 28 Javascript
javascript中toFixed()四舍五入使用方法详解
Sep 28 Javascript
Vue基本指令实例图文讲解
Feb 25 Vue.js
完美解决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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
SONY SRF-40W电路分析
2021/03/02 无线电
php 404错误页面实现代码
2009/06/22 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
JavaScript中获取元素索引的函数
2010/09/10 Javascript
jqgrid 简单学习笔记
2011/05/03 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
Python简单获取自身外网IP的方法
2016/09/18 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
python中的随机函数小结
2018/01/27 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
python实现邮件自动发送
2019/08/10 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
售后主管岗位职责
2013/12/08 职场文书
车间操作工岗位职责
2013/12/19 职场文书
会计出纳岗位职责
2013/12/25 职场文书
中学门卫岗位职责
2013/12/26 职场文书
致跳高运动员广播稿
2014/01/13 职场文书
出纳员的岗位职责
2014/02/22 职场文书
大学生党员自我评价范文
2014/04/09 职场文书
询价采购方案
2014/06/09 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
个园导游词
2015/02/04 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书