我有两个图,即plot1和plot2。
Plot2启用了BoxSelectTool,我可以使用CustomJS获取所选矩形区域的点坐标。
现在我需要用获得的坐标触发一个ajax调用,让服务器端更新plot2。
以下代码段可能会帮助您理解我的意图,尽管代码无法正常运行。
callback = CustomJS(args={}, code="""
let geometry = cb_data['geometry'];
let x0 = geometry['x0'];
let x1 = geometry['x1'];
(function($){
let request={}, args = {};
args['x_coord'] = [x0, x1];
request['args'] = JSON.stringify(args);
$.ajax({
url: '{{ url_for('app.selection_changed') }}',
type: 'POST',
data: request,
cache:false,
success: function (response) {
$('.div_plot').html(response);
},
error: function(response){
}
});
})(jQuery);
""")
plt.add_tools(BoxSelectTool(callback=callback, dimensions="width"))
select_overlay = plt.select_one(BoxSelectTool).overlay
答案 0 :(得分:0)
以下代码段似乎是正确的方法之一:
Python方面:
$('#metric_selected').bind("MetricSelected", HandleEvent_MetricSelected);
function HandleEvent_MetricSelected(event)
{
let request={}, args = {};
let x = event.detail;
args['x_coord'] = [x[0], x[1]];
request['args'] = JSON.stringify(args);
$.ajax({
url: '{{ url_for('app.metric_select_changed') }}',
type: 'POST',
data: request,
cache:false,
success: function (response) {
$('.disc_plot').html(response);
},
error: function(response){
}
});
}
JavaScript方面:
@GetMapping("/")
public String index(HttpServletRequest request){
String ip=request.getRemoteAddr(); // "0:0:0:0:0:0:0:1"
return "index";
}