我应该将JSON转换为Array以便能够使用v-for进行迭代吗?

时间:2016-08-04 11:16:23

标签: json vue.js

在下面的代码中,我从服务器获取数据并使用它们填充数组:

   Vue.http.post('/dbdata', DataBody).then((response) => {
      App.$refs.userContent.rasters_previews_list.$set(response); // putting JSON answer to Component data in userContent
      console.log("App.$refs.userContent.rasters_previews_list: ", App.$refs.userContent.rasters_previews_list.length);

      }, (response) => {
          console.log("Error")
      });

现在我正在填补。 data中声明了var userContent = Vue.extend({。我正在使用App.$refs.userContent.rasters_previews_listset它的值,因为来自SO的一个人说没有其他方法可以访问构造函数。我在用rasters_previews_list进行更改后尝试输出watch,但这就是我所看到的。 http://img.ctrlv.in/img/16/08/04/57a326e39c1a4.png我真的不明白我是设置正确还是不正确。如果是的话,为什么我看不到数据而只看到这个废话?

    data: function ()  {
      return {
        rasters_previews_list: []
      }
}

但我如何使用v-for进行迭代?

<ul v-for="img in rasters_previews_list">
<li>{{img}}</li>
<ul>

此代码显示一个项目符号。所以看起来它假设有一个object

我在浏览器控制台中的对象如下所示: Object {request: Object, data: Array[10], status: 200, statusText: "OK", ok: true}

1 个答案:

答案 0 :(得分:1)

您需要设置完整响应,而不仅仅是实际需要的数据。

Vue.http.post('/dbdata', DataBody).then((response) => {
  App.$refs.userContent.rasters_previews_list.$set(response.data);
  console.log("App.$refs.userContent.rasters_previews_list: ", App.$refs.userContent.rasters_previews_list.length);
}, (response) => {
  console.log("Error")
});

如果这不是你想要的,请发表一个完整的例子。