Bokeh:CustomJS调用中的Reference Select小部件

2024-09-28 03:15:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在CustomJS回调中引用2个Select小部件(^{cd1>}和^{cd2>}),因此我不能使用^{cd3>}。

select1 = Select(title="Level:", options=['All Levels', '1', '2', '3'], callback=callback)

首先,我尝试直接在回调中引用它的值:

^{pr2}$

这导致错误:未定义select1:

^{pr3}$

然后,我尝试将^{cd4>}传递到回调中的args:

^{pr4}$

因为^{cd4>}的参数是^{cd6>},如果在定义^{cd8>}之前定义^{cd4>},python将生成错误,因为分配之前引用了^{cd8>}。如果我在select小部件之前定义^{cd8>}则反之亦然。

所以我尝试了这样的方法:定义^{{cd4>}两次

select1 = ... (without the callback argument)
callback = ...
select1 = ... (with the callback argument)

这最终生成了bokeh图表。但是当我点击select小部件时,没有任何值。

var f=select1.value;
console.log('Select1 type ' + f.constructor.name.toLowerCase()); // string, as expected
console.log('Value ' + f); // outputs 'Value ', so f is nothing
console.log('Select1 options ' + select1.options); // Output is as expected

如果我为^{{cd4>}提供默认值参数,则^{cd1>}将不是空:

^{pr7}$

但是,^{cd1>}将保留为“1”,无论我将小部件的实际值更改为什么。所以这个值根本没有更新。

我很感激你的帮助。。谢谢!


Tags: thelog参数定义部件错误callbackselect
1条回答
网友
1楼 · 发布于 2024-09-28 03:15:30

我终于成功了。我使用js_on_change而不是添加callback作为小部件参数。在

在回调函数中,我将小部件名称作为参数传递。在

1)定义select widgets,这是指定默认值所必需的

select1 = Select(title="Level:", value='All Levels', options=['All Levels', '1', '2', '3'])
select2 = Select(...)

2)定义回调,将小部件显式作为参数传递

^{pr2}$

3)变更施工图

^{3}$

相关问题 更多 >

    热门问题