参考资料: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。
父页面注册点击事件。
编写子窗口页面。
提交表单到控制器添加记录,并返回数据。
前端接受数据,并返回给父窗口。