VueJS没有使用laravel

时间:2016-09-01 05:33:36

标签: php laravel vue.js vue-resource

使用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 个答案:

答案 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;
    }});
}