当前位置: 首页 > 编程笔记 >

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

巫马欣嘉
2023-03-14
本文向大家介绍解决vue 更改计算属性后select选中值不更改的问题,包括了解决vue 更改计算属性后select选中值不更改的问题的使用技巧和注意事项,需要的朋友参考一下

先上代码:

//...
<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属性并没有变化。也就是页面上的下拉框在非展开情况下的文字并没有改变,如下图:

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

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

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

以上这篇解决vue 更改计算属性后select选中值不更改的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊html" target="_blank">教程。

 类似资料:
  • 本文向大家介绍解决vue中对象属性改变视图不更新的问题,包括了解决vue中对象属性改变视图不更新的问题的使用技巧和注意事项,需要的朋友参考一下 常规情况下我们在vue实例的data中设置响应数据。但当数据为对象,我们增加或删除对象属性值时,视图并不触发更新,如何解决这个问题呢? 实例代码如下: 有三种解决方案: 方案一:利用Vue.set(object,key,val) 例:Vue.set(vm.

  • 本文向大家介绍解决更改AUTH_USER_MODEL后出现的问题,包括了解决更改AUTH_USER_MODEL后出现的问题的使用技巧和注意事项,需要的朋友参考一下 使用django自带的 AbstractUser 扩展之后,更改AUTH_USER_MODEL = 'users.UserProfile'属性后,进行数据库迁移时, 出现如下报错: ValueError: The field admin

  • 本文向大家介绍JS更改select内option属性的方法,包括了JS更改select内option属性的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS更改select内option属性的方法。分享给大家供大家参考。具体如下: 帮一位友人解决了一个小问题,需求是更改选中选项卡内显示的文本值,新值存放在某个文本框内 初始窗口: 详情窗口: 希望本文所述对大家的JavaScript程

  • 我是XSLT新手,希望能得到一些帮助。 我目前有一个XML,它包含以下格式的多个副本: 我的任务是替换id属性的值。我需要根据代码的数字部分改变这个值。如果值大于850000,格式应该改为USA868509。如果该值小于850000,则将id值更改为仅包括数字。XML中的其余值应保持完全相同。 我目前拥有以下xslt: 我很难确定要更改的值,因为XSLT不执行变量循环。有没有办法更改XSLT以获得

  • 本文向大家介绍解决vue attr取不到属性值的问题,包括了解决vue attr取不到属性值的问题的使用技巧和注意事项,需要的朋友参考一下 js: html: 使用 ruleList.$nextTick(function () {}) 拿到更新后的dom 以上这篇解决vue attr取不到属性值的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 在这种情况下,我更改选择元素并调用数据更新方法。该方法从状态获取值。但是当数据更新时,状态还没有改变。当您再次调用数据更新时,状态已经更新了如何正确进行更新? 反应成分