javascript - Vue.js axios delete方法删除数组中的错误对象

标签 javascript vue.js vuejs2 axios

我有一个问题,我的 axios.delete 方法删除了数组中的错误对象。总共有 3 个对象,来自 api,当我在 index.html 文件中删除时,id 为 2 和 3 的对象很好,但是当我尝试删除来 self 的 API 的数组中的第一个对象。

我的索引文件(包括删除按钮)

 <body>
        <div id="app">
          <template v-for="(results, index) in result">

              <div  class="card" style="width: 20rem; display:inline-block;">
                <div class="card-block">
                 <p>{{ results }}</p>

                 <button type="button" class="btn btn-danger pull-right" data-toggle="modal" v-on:submit.prevent="deleteData(index)" @click="deleteData(results, index) in result">Delete</button>

                 <h1> {{ results.comments}} </h1>

              </div>
              </div>

            </template>

        </div>
        <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
        <script src="https://unpkg.com/vue"></script>
        <script src="src/main.js"></script>

主要.js

var vm = new Vue ({
  el: '#app',
  data: {
    result: ''
  },

  created: function(){
    this.getResult();
  },

  methods: {

    deleteData: function(result, id) {
      axios.delete('https://my-json-server.typicode.com/json/posts/' + id)
      .then(response => {
        this.result.splice(id, 1)
        console.log(this.result);
      });
    },

    getResult: function() {
      // this.results = 'Loading...';
      axios.get('https://my-json-server.typicode.com/json/db')
      .then(response => {
        // console.log(response.data);
        this.result = response.data.posts;
        console.log(this.result);
      });
    }
  }
  });

最佳答案

如我所见,您将两个参数传递给您的 deleteData 方法。第二个参数是结果数组的索引,它不是您的真实结果 ID。

在这里,你只需要用这个替换你的deleteData方法:

 deleteData: function(result, id) {
      axios.delete('https://my-json-server.typicode.com/json/posts/' + result.id)
      .then(response => {
        this.result.splice(id, 1)
        console.log(this.result);
      });
    },

正如您在上面看到的,我们刚刚通过 result.id 更改了您的 id

关于javascript - Vue.js axios delete方法删除数组中的错误对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48197136/

相关文章:

javascript - 在 Angular 项目中可选择 jquery ui 的轻量级替代方案

javascript - 如何将 HTML 页面调用到保留所有功能的 div 部分中的 jQuery 选项卡菜单?

javascript - 在 Vue 中调用方法时的括号

javascript - 如何为测试禁用 vue.js 转换?

javascript - 使用 CryptoJS 的 VueJS 哈希文件

javascript - Vue js 加载器覆盖全局 css

javascript - 如何为 Flow 注释此函数

javascript - 为什么我所需的库没有从 ES6 转换为 ES5?

javascript - 找不到 Nuxt + Netlify Forms 自定义成功页面

javascript - v-for 构造中 Vue JS 模板中的多个临时变量?