Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Convertendo para {__ob__: Observer}

Olá pessoal,

Estou iniciando um projeto com o Vue ao desenvolver minha classe Service que busca os dados de minha API, mesmo seguindo o exemplo da aula para a conversão para JSON, quando dou console.log no browser meu retorno é um objeto Observer.

Estou utilizando as seguintes versões:

vue --version 3.5.0

node -v v10.15.3

npm -v 6.4.1

Meus métodos:

    listar() {
        return this._resource
            .query()
            .then(res => res.json());
    }

export default {
  data() {
    return {
      folhas: []
    };
  },
  created() {
    this.service = new TotvsService(this.$resource);
    this.service.listar().then(folhas => (this.folhas = folhas));
  },
  methods: {
    mostra() {
      console.log(this.folhas);
    }
  }
};

Obrigado

5 respostas

Fala aí Leandro, tudo bem? Bom, acho que podemos melhorar algumas coisas.

Sugiro você utilizar o vue-resource:

https://github.com/pagekit/vue-resource

Com ele, basicamente você vai ativar o plugin com o Vue.use e dentro dos componentes acessar this.$http.get por exemplo:

import Vue from 'vue'
import VueResource from 'vue-resource'

Vue.use(VueResource)

Ou, você pode utilizar o Axios para realizar as requisições AJAX:

https://github.com/axios/axios

Espero ter ajudado.

Olá Matheus,

Já estou usando o VueResource no meu projeto, como você pode ver no meu método listar.

Verdade, nem tinha reparado, consegue postar o código do TotvsService completo?

Matheus,

É basicamente isso. O meu método listar está em uma classe service. O restante é o código do componente ou importo o service. Pesquisando no Google, li que o vir por padrão retorna objetos observables, para gerenciar melhor os objetos.

solução!

Consegui solucionar o problema modificando o método get da seguinte forma:

this.$http
      .get("http://localhost:5000/totvs/specsheet")
      .then(res => {
        return res.json();
      })
      .then(data => (this.folhas = data));