0

需求:

  • 调用一个方法,弹出组件,异步加载选择菜单,选择后返回选择对应的行的数据。

  • 要求返回一个JSON值,给调用的对象。

                var singleSelector = {
                    dataTableLoc:{},
                    returnData:{},
                    //弹出modal
                    open:function(){
                           $('#myModal').modal({
                             });
                           this.getData();
                    },
                    getData:function(){
                        that =this;
                    //dataTable 初始化
                    this.dataTableLoc = $('#dataTableLoc').custDataTable({
                        'ajax': '/segmentFaultTest/getloc',
                        destroy: true, //Cannot reinitialise DataTable,解决重新加载表格内容问题  
                        'bPaginate': true,
                        dataSrc:function(data){
                            //  that.returnData = data;
                            //  console.log(that.returnData)
                        },
                        "columns": [
                            {
                                "data": "loc",
                                'class': 'text-center',
                                "mRender": function (data, type, row) {
                                    return '<a onclick="singleSelector.pickLoc(\'' + data + '\',\'' + row.cameraCode + '\')" class="selectionLoc pointer" data-dismiss="modal">' + data + '</a>';
                                }
                            }
                        ]
                    });
                    },
                    pickLoc:   function(data, cameraCode) {
                        this.returnData   = {cameraCode:cameraCode,loc:data}
                       return this.returnData;
                     },
                 //地址弹出框查询事件
                search:function () {
                     this.dataTableLoc.search($('#filter').val()).draw(); 
                      this.dataTableLoc.refresh();
                      }
                }           

问题:

选择后的值不知道该存到哪里去?又或者说如何返回给调用的人?

直接retrun returnData肯定是undefined?

有想过类似日期插件,弹出选择,那也是回填到一个input框内,完成了操作。

说要调用的时候,返回这个值。不是异步的吗?感觉有点挠头。

莫非这是个伪需求?

感觉陷入迷思了,希望大家点拨一下。

查看全部 3 个回答

0

选择后返回对应的值,这是异步的呀,试试Promise,

function getDate(){
    return new Promise(function(){
        ....
        //返回对应的值
       resolve(data);
    })
}
getDate().then(res=>{
    
})