【发布时间】:2019-03-28 05:50:27
【问题描述】:
我正在开发一个 vuejs / laravel 表单来更新用户设置。经过一番挣扎,我不在验证处理中。我正在使用 laravel 返回验证在输入字段下方添加错误消息以查找错误。它返回的方式需要我以某种方式处理我如何“获取”错误。
我的问题是我似乎不知道如何在我的组件中导入一个类并从模板中使用它。正如您在 EditUser.vue 中看到的那样,我试图通过导入的类作为 v-text="errors.get('name')"
那么任何人都可以帮助我改变我的方法或让我正在做的工作正常工作。
edit.blade.php:
<edit-user-form user-array="{{ $user }}"
route="{{ route('user.update', $user) }}"></edit-user-form>
EditUser.vue:
<template>
<form method="POST" action="update" @submit.prevent="onSubmit">
<input id="name" type="text" name="name" v-model="user.name">
<span class="invalid-feedback" role="alert">
<strong v-text="errors.get('name')"></strong>
</span>
</form>
</template>
<script>
import {Errors} from '../errors.js';
export default {
props: ['userArray', 'route'],
data() {
return {
user: JSON.parse(this.userArray)
}
},
methods: {
onSubmit() {
axios.post(this.route, this.user)
.then(response => alert('Success'))
.catch(error => Errors.record(error.response.data));
}
}
};
</script>
error.js:
export class Errors {
constructor() {
this.errors = {};
}
get(field) {
if (this.erros[field]) {
return this.errors[field][0];
}
}
record(errors) {
this.errors = errors;
}
}
【问题讨论】:
-
v-text="errors.get('name')"正在寻找一个名为errors的 vue 数据类型。您的导入是空白导入。它没有被任何东西引用 -
@Varcorb 是的,我想,你会说我需要在数据返回中调用它吗?我该怎么做?
-
试试你的
return {user: JSON.parse(this.userArray),errors: Errors} -
@Varcorb 我之前试过,它给了我这个错误“渲染错误:“TypeError:_vm.errors.get 不是函数”
标签: javascript laravel vue.js vuejs2 vue-component