VueJS не работает с Laravel

Публикация данных vue как тела для публикации запроса с использованием ресурса vue

<script>
//var VueValidator = require ('vue-validator');
new Vue({
el: '#app',
data: {
email: '',
password: '',
_token: '{{csrf_token()}}',
uid: '{{$row->id}}'
},
methods: {
changeCredentials: function (e) {
console.log(this.email); --> **RETURNS EMPTY**
var resource = this.$resource('myurl/{id}');
resource.save({id: this.uid}, {body: function () {
console.log(this.data);
return this.data;
}}).then((response) => {
// success callback
console.log(response);
}, (response) => {
// error callback
});//alert('here');
}
}
});
</script>

Можете ли вы сказать мне, почему this.uid работает, а не this.email? Спасибо

1

Решение

Это потому, что когда вы получаете доступ this.data вы находитесь внутри обратного вызова, который меняет область, в которой вы находитесь в настоящее время, где this на самом деле не ваш компонент Vue.

Установив _this Затем вы можете получить доступ к этой переменной, как только вы измените область действия и перейдете к обратному вызову.

changeCredentials: function () {
var resource = this.$resource('myurl/{id}');
var _this = this;

resource.save({id: _this.uid}, {body: function () {
console.log(_this.data);

return _this.data;
}});
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]