javascript - 数据更改时 Vue 不更新。

标签 javascript vue.js

我遇到一个奇怪的问题,当我在 Vue 实例中更改数据时,HTML 没有更新:

CodePen

HTML:

<div class="favourites-panel__wrapper" id="app">
  <ul>
    <li v-for="(vehicle, index) in vehicles">{{ vehicle.id }}</li>
  </ul>
  <a href="javascript:void(0);" v-on:click="add()">Add</a>
</div>

JavaScript:

window.panel = new Vue({
    el: '#app',
    data: {
        vehicles: {}
    },
    created: function() {

        // Create dummy vehicles
        for (var i = 0; i < 4; i++) {
            this.vehicles[i] = this.dummy(i);
        }

    },
    methods: {
      add: function() {
        let index = Object.keys(this.vehicles).length;
        let dummy = this.dummy(index);

        this.vehicles[Object.keys(this.vehicles).length] = dummy;
      },
      dummy: function(i) {
        return {
          'dummy': true,
          'body': 'loading',
          'fuel_type': 'loading',
          'gearbox_type': 'loading',
          'id': 'loading' + i,
          'image': '/assets/images/themev2/compare-dummy.gif',
          'image_id': 'loading',
          'make': 'loading',
          'model': 'loading',
          'location_name': 'loading',
          'variant': 'loading',
          'web_price': 'loading'
        }
      }
    }
});

最佳答案

使用

Vue.set(this.vehicles, Object.keys(this.vehicles).length, dummy);

已安装

this.vehicles[Object.keys(this.vehicles).length] = dummy;

关于javascript - 数据更改时 Vue 不更新。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52627315/

相关文章:

javascript - cssText 还是单独的样式名称?

javascript - 新版本的谷歌地图javascript版本是否适用于JavaFx-WebView

javascript - "now"尝试更新时间时未定义

javascript - 根据条件添加类(使用 v-for 最后渲染的元素)

javascript - 带复选框的 mootools 模态框

javascript - 在点击事件中通过语句调用函数

javascript - 将定时 jQuery 函数放在动态创建的 div 上

npm - Vue 模块,moment-timezone - 如何正确加载 moment-timezone 以及如何使用 2012-2022 数据

css - v-if显示子div时如何避免父元素跳高

typescript - 如何使用 VS Code 在 .vue 文件中使用 Typescript?