解决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 相关文章推荐
JavaScript中的函数重载深入理解
Aug 04 Javascript
js实现简单的可切换选项卡效果
Apr 10 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
May 25 Javascript
纯javascript实现自动发送邮件
Oct 21 Javascript
原生js实现addClass,removeClass,hasClass方法
Apr 27 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
May 09 Javascript
JavaScript ES6的新特性使用新方法定义Class
Jun 28 Javascript
javascript鼠标滑过显示二级菜单特效
Nov 18 Javascript
第一次接触神奇的Bootstrap菜单和导航
Aug 01 Javascript
JS数组返回去重后数据的方法解析
Jan 03 Javascript
URL中“#” “?” &amp;“”号的作用浅析
Feb 04 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
Mar 09 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/06 PHP
php中动态调用函数的方法
2015/03/16 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
一个基于jquery的图片切换效果
2010/07/06 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
JavaScript将字符串转换成字符编码列表的方法
2015/03/19 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
微信小程序之GET请求的实例详解
2017/09/29 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
javascript中的隐式调用
2018/02/10 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
如何基于Python批量下载音乐
2019/11/11 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
大专生工程监理求职信
2013/10/04 职场文书
日本语毕业生自荐信
2014/02/01 职场文书
幼师求职自荐信
2014/05/31 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
2014年党总支工作总结
2014/12/18 职场文书
python基础之爬虫入门
2021/05/10 Python