如何为Bokeh面板添加CustomJS回调?例如,说我想要 根据选项卡中当前选定的Panel更改bokeh.model.Div中的文本。 我天真的尝试是这样的:
div = Div(text='Test Div', width=100, height=100)
panel = Panel(child=plot, title=plot.title)
callback = CustomJS(args=dict(div=div), code='div.text = "change successful!";')
panel.js_on_event(events.Tap, callback)
然而这显然不起作用,所以我想知道是否有人可以纠正这个例子?
答案 0 :(得分:1)
我认为一般方法是在活动面板更改时编写回调函数进行注册。如果您的面板位于"标签"对象,您可以编写CustomJS(如果您使用服务器,则可以编写基于python的回调)。简单的例子如下。
div = Div(text="Pannel 1 is active")
p1text = Div(text="this is Panel 1")
p2text = Div(text="this is Panel 2")
p1 = Panel(child=p1text,title="Panel 1")
p2 = Panel(child=p2text,title="Panel 2")
tabs = Tabs(tabs=[p1,p2])
code = """
var active = tabs.active + 1;
div.text = "Panel "+active+" is active"
"""
callback = CustomJS(args={'tabs':tabs,'div':div}, code=code)
tabs.js_on_change('active',callback)
show(row(div,tabs))