Vue.js 没有设置数据

Vue.js not setting data

我正在尝试使用 Laravel 5.3 和 Vue.js 进行一些简单的表单验证。

Laravel 控制器:

 public function test(\Illuminate\Http\Request $request)
    {
        $this->validate($request, [
            'name' => 'required',
            'date' => 'required'
        ]);
...
    }

Vue 数据:

let app = new Vue({
        el: '#app',

data: {
        submitted: false,
        errors: [],
        post: {
               name: '',
               date: '',
              },
},

Vue post:

Vue.http.post('url', post).then((response) => {
    // form submission successful, reset post data and set submitted to true
    app.post = {
        name: '',
        date: '',
    };

    // clear previous form errors
    app.$set('errors', '');

    app.submitted = true;

}, (response) => {
    // form submission failed, pass form  errors to errors array
    console.log(response.data.name); //"The Name field is required."
    app.$set('errors', response.data); // TypeError
});

我正在

TypeError: can't assign to properties of (new String("errors")): not an object

app.$set('errors', response.data);

我哪里错了?

检查 vm.$set(object, key, value),您正在尝试将 属性 添加到 字符串 'errors',使用 response.data 作为钥匙。

正确的语法是 app.$set(app, 'errors', response.data),但 app.errors = response.data 应该同样有效。