解决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 相关文章推荐
使用js实现一个可编辑的select下拉列表
Feb 20 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
Jun 21 Javascript
js变量提升深入理解
Sep 16 Javascript
关于Angular2 + node接口调试的解决方案
May 28 Javascript
requireJS模块化实现返回顶部功能的方法详解
Oct 16 Javascript
prototype.js简单实现ajax功能示例
Oct 18 Javascript
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
node中使用es6/7/8(支持性与性能)
Mar 28 Javascript
Vue3 中的数据侦测的实现
Oct 09 Javascript
JS实现导航栏楼层特效
Jan 01 Javascript
vue+canvas实现拼图小游戏
Sep 18 Javascript
如何在vue-cli中使用css-loader实现css module
Jan 07 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
几个php应用技巧
2008/03/27 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
PHP实现的简单路由和类自动加载功能
2018/03/13 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
JavaScript对象属性操作实例解析
2020/02/04 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
Python写的一个简单监控系统
2015/06/19 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
numpy.ndarray 实现对特定行或列取值
2019/12/05 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
德购商城:德国进口直邮商城
2017/06/13 全球购物
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
linux面试相关问题
2013/04/28 面试题
党建示范点实施方案
2014/03/12 职场文书
教研活动总结
2014/04/28 职场文书
财会专业毕业生自荐信
2014/07/09 职场文书
教师师德考核自我评价
2014/09/13 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
教师考核鉴定意见
2015/06/05 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
java设计模式--原型模式详解
2021/07/21 Java/Android
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技