Fastadmin fast.api.open回撥函式

温柔的风發表於2024-09-05

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

相關文章