使用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?谢谢
答案 0 :(得分: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;
}});
}