亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用外部 JavaScript 代碼訪問和更新散景圖或小部件?

如何使用外部 JavaScript 代碼訪問和更新散景圖或小部件?

慕的地8271018 2021-12-02 14:56:06
我有一個由時間散景滑塊控制的散景圖。我試圖通過單擊按鈕將滑塊的時間和相應的繪制數據設置為瀏覽器的當前時間。如果一切都完全用 JS 開發,我知道如何做同樣的事情。但是我正在編寫嵌入在 HTML 文件中的外部 JS 函數,我不知道如何訪問 Bokeh 對象(在本例中為 Slider)并操作它們。我只能使用回調函數從滑塊開始并更改基礎數據,但不能反過來。我需要使用按鈕將滑塊的值設置為當前時間!callback = CustomJS( JS Code to cahnge the data; )Timeslider = DateSlider(start=dt(2019, 9, 1, 16, 0, 0), end=dt(2019, 9, 2, 8, 0, 0), value=dt(2019, 9, 1, 16, 0, 0), step=1) callback.args['time_slider'] = TimesliderTimeslider.js_on_change('value', callback)
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您可以在嵌入另一個JS庫block postamble等中描述的背景虛化模板的一部分在這里。然后如果你給你的滑塊一個名字,你可以像這樣訪問它:


Python:


slider = Slider(start=0, end=10, value=5, name='my_slider')

JS:


var slider = Bokeh.documents[0].get_model_by_name('my_slider')

console.log('slider value before:', slider.value)

slider.value = 10

console.log('slider value after:', slider.value)

這是假設document您的應用程序中只有一個 Bokeh (注意 中的0索引documents[0])。然后,您可以Slider像在 CustomJS 回調中一樣訪問和操作該對象,但請注意,在這種情況下,cb_obj和cb_data不可用。


請參閱下面的完整工作示例(Bokeh v1.3.0):


external_js.py:


from bokeh.io import save

from bokeh.models import Slider, Column

from bokeh.util.browser import view


template = """

{% block postamble %}

    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

    <script>

        $(document).ready(function() {

            var slider = Bokeh.documents[0].get_model_by_name('my_slider')

            console.log('slider value before:', slider.value)

            slider.value = 10

            console.log('slider value after:', slider.value)

        });

    </script>

{% endblock %}

"""


slider = Slider(start=0, end=10, value=5, name='my_slider')


save(Column(slider), template=template)

view("external_js.html")


查看完整回答
反對 回復 2021-12-02
  • 1 回答
  • 0 關注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號