Saltar al contenido

¿Cómo actualizar los datos de una instancia de VueJS desde una llamada jQuery AJAX?

Solución:

Tiene un problema de alcance de this.name en su controlador de éxito AJAX.

los this.name por dentro no es lo mismo que this.name en su componente Vue. Entonces, su nombre no se establece en el componente Vue.

Puede utilizar las funciones de flecha para solucionar este problema:

$.ajax({
    url: 'http://elk.example.com:9200/users/user/' + this.id
    }).done(data => {
        this.name = data._source;  // 'this' points to outside scope
        this.name.valueset = true;
    });

Respuesta similar: https://stackoverflow.com/a/40200989/654825

Más información sobre las funciones de Arrow: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions

no es el mismo alcance para this.name

create_casenr: function(event) {
// update the full name of user
$.ajax({
    url: 'http://elk.example.com:9200/users/user/' + this.id
})
.done(function(data) {
    console.log(data);
    this.name = data._source;
    this.name.valueset = true;
    console.log(this.name);
}.bind(this))

Agrega un bind(this)

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *