參考資料:https://ask.fastadmin.net/article/2527.html
花了一些時間查閱資料,看例子,看別人的見解。感覺還是有點懵。決定看一下fast.js里面的open函數和require-form的一些實現。看了之后,還是感覺自己看一遍,再去看那些資料,瞬間清晰很多。
子窗口向父頁面傳值有2種情況。看是不是需要控制器處理返回的。
1.需要控制器返回的,比如點擊彈窗是添加的功能,需要把新添加的記錄id返回給頁面。這個用callback,callback函數要和子頁面js的fast.api.close方法一起用。並且使用了callback方法,不能在使用success方法,否則callback不能接收到回傳的數據。fastadmin社區子窗口向父窗口傳值多數說的是這種,實現了子窗口可以向父頁面傳輸后台的數據。
2.不需要控制器處理。例如點擊彈出的窗口是一個選擇某個id,返回這項的id給父頁面。這個id可以直接用$()選擇器從頁面獲取,而不用控制器從數據庫獲取或處理。這個在子頁面使用js或jq賦值,做標記。可以百度layer的open函數怎么把數據返回給父窗口。
效果圖。
父頁面對應代碼:添加一個按鈕,寫上提交地址。父頁面是index,子窗口是addtest。
父頁面注冊點擊事件。
編寫子窗口頁面。
提交表單到控制器添加記錄,並返回數據。
前端接受數據,並返回給父窗口。