[Vuejs]-Vue.js async update from inside JS import

0👍

Try this

watch: {
    'email': function (val) {
       validateInput('email', val,this)
    }
  }

and

validateInput('email', val, ref)
----
// validateInput.js
email() {
  $.ajax({
    ...
    success(response) {
      ref.validEmail = response   // doesn't work
    }
  })
         // ^^^^ this works
}

Or the traditional way to deal with asynchronous calls is pass a callback that has a closure over the variable that needs edited.

watch: {
    'email': function (val) {
       validateInput('email', val,function(response){this.validEmail=response})
    }
  }
  //...
  validateInput('email', val, cb)
  //...
  success(response) {
    cb(response);
  }

Leave a comment