[英]Vue.js not setting data
I'm trying to do some simple form validation using Laravel 5.3 and Vue.js.我正在尝试使用 Laravel 5.3 和 Vue.js 进行一些简单的表单验证。
Laravel controller: Laravel 控制器:
public function test(\Illuminate\Http\Request $request)
{
$this->validate($request, [
'name' => 'required',
'date' => 'required'
]);
...
}
Vue data: Vue数据:
let app = new Vue({
el: '#app',
data: {
submitted: false,
errors: [],
post: {
name: '',
date: '',
},
},
Vue post: Vue帖子:
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
});
I'm getting我越来越
TypeError: can't assign to properties of (new String("errors")): not an object
TypeError:无法分配给(新字符串(“错误”))的属性:不是对象
with app.$set('errors', response.data);
与
app.$set('errors', response.data);
Where am I going wrong?我哪里错了?
Check vm.$set(object, key, value) , you're trying to add a property to the string 'errors' using response.data
as the key.检查vm.$set(object, key, value) ,您正在尝试使用
response.data
作为键向字符串'errors' 添加属性。
The correct syntax is app.$set(app, 'errors', response.data)
but app.errors = response.data
should work equally well.正确的语法是
app.$set(app, 'errors', response.data)
但app.errors = response.data
应该同样有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.