文章講述瞭如何透過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 傳至父頁面 });