【发布时间】:2018-02-28 10:50:19
【问题描述】:
我使用 vu-material 制作了一个对话框,一切正常,但我在对话框中有一个表单,每次打开对话框时我都想清理它,问题是如果我不更改页面,我的所有对话框内的 v-model 在关闭对话框之前保留我拥有的数据。 我尝试使用 created/mounted/updated 挂钩来清理我的 v-model,但是当我不更改页面时这些挂钩不会被触发。
这是我的代码的一部分:
Toolbarnav.vue:
<template>
...
<md-dialog md-open-from="#uploadBtn" ref="uploadDialog">
<md-dialog-title>Upload file</md-dialog-title>
<md-dialog-content>
<upload-dialog></upload-dialog>
</md-dialog-content>
<md-dialog-actions class="md-align-center">
<md-button class="md-primary" @click.native="closeUploadDialog()">Fermer</md-button>
</md-dialog-actions>
</md-dialog>
...
</template>
<script>
...
openUploadDialog() {
this.$refs.uploadDialog.open();
},
closeUploadDialog() {
this.$refs.uploadDialog.close();
},
...
</script>
上传对话框.vue:
<template>
...
<md-input-container>
<label>Nom</label>
<md-input id="nom" v-model="nom"></md-input>
</md-input-container>
<md-input-container>
<label>Prénom</label>
<md-input id="prenom" v-model="prenom"></md-input>
</md-input-container>
<md-input-container>
<label>Email</label>
<md-input id="email" v-model="email"></md-input>
</md-input-container>
...
</template>
<script>
...
name: upload-dialog',
data() {
return {
files: [],
nom: '',
prenom: '',
email: '',
};
},
...
created() {
this.files = [];
this.nom = '';
this.prenom = '';
this.email = '';
},
</script>
有什么想法吗? 谢谢
【问题讨论】:
-
来自 Vue 官方文档 (vuejs.org/v2/api/#ref) 关于 ref 注册时间的重要说明:因为 ref 本身是由 render 函数创建的,所以您不能 > 在初始渲染时访问它们 -他们还不存在! $refs 也是非响应式的,因此您不应尝试在模板中使用它来进行数据绑定。
标签: vuejs2 vue-material