一张图解析FastAdmin中的弹出窗口的功能(备份)

功能描述

弹出窗口是FastAdmin中最常用的功能之一,FastAdmin中默认生成的CRUD中的编辑、添加和删除的弹窗都是基于Layer弹层组件实现的,FastAdmin在此基础上进行了扩展和二次开发,除了Layer原有的功能外,还有部分FastAdmin特有的功能。

首先我们先来看看最常用的编辑和添加弹窗。在CRUD后的列表中默认的添加和编辑按钮会自动绑定事件,如果需要手动弹窗,我们可以使用Fast.api.open(url, title, options)进行弹出。

这里一定得注意下Fast.api.openLayer.open有很大的区别,Layer.openLayer自带的原始方法,Fast.api.open是FastAdmin独有的方法。

接下来我们看下使用Fast.api.open弹出的弹出窗口的组成部分

1.标题区域

用于显示弹出层的标题,配置title即可

2.内容区域

用于展示url对应的页面的内容,此处嵌入的urliframe,也就是说弹出窗口的正文是通过iframe显示的,那么正文部分相当于完全新开一个页面。

3.操作区域

这个区域比较特殊,FastAdmin做了许多定制化,显示的内容从url对应的页面中的layer-footer区域内的内容复制到外部显示的。也就是说这部分的内容我们完全可以自定义,只需要修改url页面对应layer-footer区域内的内容即可。这里需要注意下这部分的内容会随着页面中layer-footer区域内的内容变化而变化,事件也会随之响应。

事件绑定

内容区域内因为是一个单独的iframe,通常情况下页面都是一个表单,默认是不会绑定事件的,我们需要在控制器对应的JS中Form.api.bindevent进行绑定事件,绑定事件后我们点确定按钮才会采用Ajax的方式进行提交表单,否则会采用原始的方式提交表单。

常用示例

打开一个弹窗并接收回传数据

javascript 复制代码
Fast.api.open("/example/select", "FastAdmin", {
    callback:function(value){
        在这里可以接收弹出层中使用`Fast.api.close(data)`进行回传的数据
    }
});

表单提交成功后不关闭弹窗

javascript 复制代码
Form.api.bindevent("form[role=form]", function(data, ret){
    //这里只要返回false,就会阻止我们的弹窗自动关闭和自动提示
    return false;
});

参考

https://ask.fastadmin.net/article/2527.html

相关推荐
JaguarJack1 天前
PHP 的异步编程 该怎么选择
后端·php·服务端
BingoGo1 天前
PHP 的异步编程 该怎么选择
后端·php
JaguarJack2 天前
为什么 PHP 闭包要加 static?
后端·php·服务端
ServBay3 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954483 天前
CTF 伪协议
php
BingoGo5 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack5 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo6 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack6 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack7 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端