點擊圖片查看高清大圖
功能描述
彈出窗口是FastAdmin中最常用的功能之一,FastAdmin中默認生成的CRUD中的編輯、添加和刪除的彈窗都是基於Layer
彈層組件實現的,FastAdmin在此基礎上進行了擴展和二次開發,除了Layer
原有的功能外,還有部分FastAdmin特有的功能。
首先我們先來看看最常用的編輯和添加彈窗。在CRUD后的列表中默認的添加和編輯按鈕會自動綁定事件,如果需要手動彈窗,我們可以使用Fast.api.open(url, title, options)
進行彈出。
這里一定得注意下Fast.api.open
和Layer.open
有很大的區別,Layer.open
是Layer
自帶的原始方法,Fast.api.open
是FastAdmin獨有的方法。
接下來我們看下使用Fast.api.open
彈出的彈出窗口的組成部分
1.標題區域
用於顯示彈出層的標題,配置title
即可
2.內容區域
用於展示url
對應的頁面的內容,此處嵌入的url
的iframe
,也就是說彈出窗口的正文是通過iframe
顯示的,那么正文部分相當於完全新開一個頁面。
3.操作區域
這個區域比較特殊,FastAdmin做了許多定制化,顯示的內容從url
對應的頁面中的layer-footer
區域內的內容復制到外部顯示的。也就是說這部分的內容我們完全可以自定義,只需要修改url
頁面對應layer-footer
區域內的內容即可。這里需要注意下這部分的內容會隨着頁面中layer-footer
區域內的內容變化而變化,事件也會隨之響應。
事件綁定
內容區域內因為是一個單獨的iframe,通常情況下頁面都是一個表單,默認是不會綁定事件的,我們需要在控制器對應的JS中Form.api.bindevent
進行綁定事件,綁定事件后我們點確定按鈕才會采用Ajax的方式進行提交表單,否則會采用原始的方式提交表單。
常用示例
打開一個彈窗並接收回傳數據
1 Fast.api.open("https://www.fastadmin.net", "FastAdmin", { 2 callback:function(value){ 3 在這里可以接收彈出層中使用`Fast.api.close(data)`進行回傳數據 4 } 5 });
表單提交成功后不關閉彈窗
1 Form.api.bindevent("form[role=form]", function(data, ret){ 2 //這里只要返回false,就會阻止我們的彈窗自動關閉和自動提示 3 return false; 4 });