我接到了一个叫Vue Js的电话

时间:2017-11-09 15:27:55

标签: javascript arrays rest vuejs2 vue-resource

我正在使用带有元素UI 的Vue.js。我必须填写表格,但我遇到了以下错误:

  

预期数组,得到了对象。

我知道'get'调用返回一个Promise对象。我试图打印出那个对象,看看如何到达阵列。它在[[PromiseValue]]里面,我不知道如何访问它。我在这篇文章中看到了答案:What does [[PromiseValue]] mean in javascript console and how to do I get it。但是我以这种方式访问​​它似乎不对,因为它是一个私有财产。所以我正在寻找一个标准的解决方案。这是我与vue.js的第一个项目。之前我使用过Angular 2-4,我只需要做response.json()._embedded.customers

接听电话

    this.$http.get('http://localhost:8080/customers')
    .then(response => {
      // JSON responses are automatically parsed.
      this.customersArray = response.json();
      console.log(response.json());
    })
    .catch(function(err) {
      return {
        name: 'default user'
      };
    })

response.json()对象:img

简而言之,我需要 _embedded 下的客户数组。 对于crud,正在使用vue资源。

编辑:我甚至试图解决它,如下所示,但我得到的结果与屏幕截图相同:

    var promise1 = new Promise((resolve, reject) => {
      Vue.http.get('http://localhost:8080/customers').then((response) => {
        resolve(response.json());
      }, (response) => {
        reject(response.status)
      })
    });
    console.log(promise1);

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

我必须阅读响应正文才能访问我需要的对象。我已通过以下方式解决了这个问题:

        this.$http.get('http://localhost:8080/customers')
        .then(response => {
          // JSON responses are automatically parsed.
          this.customersArray = response.body._embedded.customers;
        })
        .catch(function(err) {
          return {
            name: 'default user'
          };
        })

我不知道为什么在检查员身上没有任何部分“身体”,我通常会通过打印整个物体然后按照检查员的路径来达到目的。但无论如何。 =)

编辑:我不能接受我自己的回答2天,抱歉给您带来不便。