javascript - 有没有办法缩短定义 v-model 数据、Vue.js 和 Laravel
问题描述
在我的 CRUD 项目的编辑页面上,我有一个代码,用正在编辑的记录的值填充表单。
我v-model
用来定义 HTML 输入,但代码似乎太长了。
我从道具中获取数据,并填充v-model
.
我的填充 v-model 的代码
created() {
this.studentData = this.student;
this.first_name = this.student.first_name;
this.last_name = this.student.last_name;
this.student_number = this.student.last_name;
this.phone_number = this.student.phone_number;
this.email = this.student.email;
this.birth_date = moment(this.student.birth_date).format('YYYY-MM-DD');
this.school_name = this.student.school_name;
}
我使用 prop: props: ['student']
和刀片获取数据的方式<student-edit-component :student="{{$student}}">
在脚本中定义 v-model
data () {
return {
first_name: '',
last_name: '',
student_number: '',
phone_number: '',
email: '',
birth_date: '',
school_name: '',
};
},
这会用它的数据填充表单输入上的值。
有没有办法使用道具或数组来缩短这段代码?
请帮助我,我对Vue很陌生
解决方案
您可以更改数据模型添加新层。例如:
data() {
return {
currentStudent: {
first_name: '',
last_name: '',
student_number: '',
phone_number: '',
email: '',
birth_date: '',
school_name: '',
}
}
},
然后在created
你可以使用简单
created() {
this.currentStudent = this.student;
this.currentStudent.birth_date = moment(this.student.birth_date).format('YYYY-MM-DD');
},
并在所有组件中用名称替换名称,currentStudne
例如 in v-models
:
first_name -> currentStudne.first_name
您还可以阅读有关Vue.$set
推荐阅读
- javascript - nodejs puppeteer无法下载URL中带有特殊字符的图像文件
- html - CSS样式实现曲线圆
- docusignapi - 如何在没有“EnvelopeRecipients::List”的情况下使用 Docusign API 获得拒绝原因
- amazon-web-services - Terraform - 当它是端点服务的一部分时,无法删除负载均衡器
- java - 如何在 vscode 中设置 launch.json 中的默认 java 配置,以使 vscode 在每次运行应用程序时停止要求我指定主类?
- python - 获取_tkinter.TclError:tkinter中的未知选项“-relief”错误
- java - 为什么这个常量声明在 Java 中不起作用?
- firebase - 如何在 Web 应用程序中处理日常计算(Google Firebase/NestJS)
- amazon-web-services - AWS SES 554-没有适用于 web.de 和 GMX 电子邮件地址的 SMTP 服务
- css - 如何保持单独的 CSS 类中的单独转换不会相互覆盖?