在使用
iview发现
点击确定的
时候,他的弹层会
自动关闭(默认的
确定和取消 footer)
解决办法 使用slot="footer"添加一个footer,自定义
确定取消的方法控制弹层的显示与隐藏。
<div slot="footer">
<Button
size="large"
@click="showDialog = false"
>取消</Button>
<Button
额外的,每次父级组件发生变更
时,子组件中所有的 prop 都将会刷新为最新的值。这意味着你不应该在一个子组件内部改变 prop。如果你这样做了,
Vue 会在浏览器的控制台中发出警告。
可以使用浅拷贝,不用影响父组件状态,json.stringfy json.parse
<div class="mask" v-if="show
Modal" @click="show
Modal=false"></div>
<div class="pop" v-if="show
Modal">
<!--
关闭 -->
今天遇到一个需求:
弹出的modal框中,勾选数据,在点击modal框的确定时,调用接口,如果数据返回空,关闭modal框,否则modal框不关闭,提示他重新勾选数据。
modal框有props参数 loading默认是false,就是在点击确定直接关闭modal框。如果设置loading设置为true,则点击确定不会自动关闭modal框,需要手动设置modal框的显示和隐藏。这是我又发现另一个问题,请求一次提示重新勾选数据后,modal的确定按钮为loading加载状态,无法重新勾选进行第二次请求发送,数
遇到的问题:iview-modal在做数据校验时,点击确定,当校验不通过时,弹框也自动关闭了
解决方案:
1.给Modal添加属性loading后,点击确定按钮对话框不会自动消失,并显示 loading 状态,需要手动关闭对话框,常用于表单提交。
handleSubmit(name) {
let self = this;
this.$refs[name].validate(...
问题描述:在某个页面需打开一个Modal,然后这个Modal里有一个Form表单,点击确定时我需要先校验表单数据是否输入正确,不确定则不希望关闭窗口;(问题是:只要点击确认 loading :false 情况下iview默认就把窗口就关闭了)
API上也只是说了通过loading状态来手动关闭对话框,但是在需要验证form表单,表单验证通过再关闭modal 这种环境下,似乎并不实用,当首次表单验...
<tr v-for="(item, index) in tableData" :key="index">
<td>{{ item.name }}</td>
<td>{{ item.age }}</td>
<button @click="handleEditClick(item, $event)">编辑</button>
</tbody>
</table>
</template>
<script>
export default {
methods: {
handleEditClick(item, event) {
event.stopPropagation();
// 处理编辑事件,例如显示编辑框
</script>
3. 在全局的
点击事件监听器中判断是否
点击了编辑
按钮,如果没有则隐藏编辑框。
handleGlobalClick(event) {
const editBtn = event.target.closest('.edit-btn');
if (!editBtn) {
// 隐藏编辑框
4. 在编辑框中添加保存和取消
按钮,分别绑定对应的
点击事件。
<template>
<div v-show="isEditing">
<input v-
model="editName">
<input v-
model="editAge">
<button @click="handleSaveClick">保存</button>
<button @click="handleCancelClick">取消</button>
</template>
<script>
export default {
methods: {
handleSaveClick() {
// 保存编辑内容
handleCancelClick() {
// 取消编辑操作
</script>
通过以上步骤,您可以实现
点击编辑
按钮后显示编辑框,
点击其他区域则隐藏编辑框的功能。