如何显示vue数据到Laravel刀片?

时间:2019-09-27 07:33:02

标签: laravel vue.js

我有一个使用Laravel + vue.js的项目。 我做了一个vue组件,它从控制器中获取了一些数据。 我想使用v-for在视图中显示数据,但是什么也没显示。

vue模板代码

<template>
  <div v-for="val in expiredIos" class="card col-xs-12 col-md-5 col-lg-2 m-1 p-0 d-inline-block">
     <div class="mx-0 p-2 text-truncate" style="width:10rem;vertical-align:middle;">
        {{ val.app_name }}
     </div>
  </div>
...
</template>

vue脚本部分

export default {
  data: function() {
    return {
      expiredIos: []
    }
  },
  mounted() {
    console.log("expired here");
    this.getExpiredIosData();
  },
  methods: {
    getExpiredIosData: function() {
      axios.post('/expired')
      .then(response => {
          for (var i = 0; i < response.data.length; i++) {
            this.expiredIos[i] = response.data[i];
            console.log(this.expiredIos[i]);
          }
      });
    }
  },
}

console.log 的结果

{app_name: "app1", app_id: "migunstyle", ios_dev_exp: "2019-01-16"}
{app_name: "app2", app_id: "jcalling", ios_dev_exp: "2019-02-19"}
{app_name: "app3", app_id: "modoobebe", ios_dev_exp: "2019-03-08"}
{app_name: "app4", app_id: "babyfactory", ios_dev_exp: "2019-03-19"}
{app_name: "app5", app_id: "merrygirl", ios_dev_exp: "2019-03-21"}
...

我在这里错了什么?

1 个答案:

答案 0 :(得分:0)

尝试将整个数组直接设置为data属性。

getExpiredIosData: function() {
  axios.post('/expired')
  .then(response => {
      this.expiredIos = response.data; // <-- Set property directly
  });
}

Vue跟踪所有数据属性,但是跟踪数组更改是它不能执行的操作。您需要使用内置的数组操作功能,或者完全替换数组以获取更改。

https://vuejs.org/v2/guide/list.html#Array-Change-Detection