文章讲述了如何通过Fast.api的回调函数功能,在A页面点击事件打开B页面后,当B页面上的特定按钮被点击时,将数据传回给A页面。在B页面,数据会被处理并以Fast.api.close()方法关闭时传递出去,如果需要传输多个数据,可以将它们拼接成字符串。
通过回调函数讲子页面的数据传输到父页面,
A页面为父页面,B页面是子页面
在A页面点击事件调B页面
Fast.api.open("URL","页面名称",{
area:['78%','95%'],
callback:function(value){
//value 就是B页面传输的数据
}
}
在B页面:
B:function(){
//页面中加上以下部分 '.btn-success是B页面的按钮的class
$(document).on('click', '.btn-success', function(){
//data为要传输的数据,只能放一个数据,所以传输的数据多的时候可以拼接一个字符串
Fast.api.close(data);
});
}
------------------再举例
$(document).on('click','.btn', function (event) {
var url = $(this).attr('data-url');
if(!url) return false;
var msg = $(this).attr('data-title');
var width = $(this).attr('data-width');
var height = $(this).attr('data-height');
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
var options = {
shadeClose: false,
shade: [0.3, '#393D49'],
area: area,
callback:function(value){ //这个value就是传上来的值
console.log(value);
}
};
Fast.api.open(url,msg,options);
});
在子窗体的js里加,本身如果要绑定事件是:
Controller.api.bindevent();
但是如果要传值,可以改成以下:
//给按钮添加点击事件
$(document).on('click', '.btn-band', function () {
var ids = Table.api.selectedids(table); //获取选中的id,获取到的是个数组
Fast.api.close(ids);//这里是重点,将这个ids 传至父页面
});