需求:
调用一个方法,弹出组件,异步加载选择菜单,选择后返回选择对应的行的数据。
要求返回一个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();
}
}
你的需求和我写的一个日历组件的需求很相近,你应该用的是vuejs,实现起来很简单,你只需要在组件内部emit一个事件,并且传入你想暴露给外部使用组件的环境的数据就好了,接下来就是在使用组件时监听这个事件了。
286行开始。
https://gitee.com/Daniel_Deng...