2016-11-08 21 views
0

Bokeh UIにSelect、DataTable、Buttonがあります。 Bokeh TableData on_change選択されたイベントが2回呼び出されました

  • 選択

    は、DataTableの
  • ボタンで指定された行に直接移動することを可能にするのDataTable
  • のDataTableに次の行に移動することを可能にすることは、直接、単一のライン選択を可能にする(したがって、選択を更新します)。

    self.__table_data.on_change('selected',self.table_selection_change) 
    

    ボタンをクリックするとhereを見られるように、私は新しいdictの構造とのDataTableソースの選択した属性を変更します:

    self.__table_data.selected = {'2d': {'indices': []}, '1d': {'indices': [my_new_index]}, '0d': {'indices': [], 'glyph': None}} 
    

のDataTableはを通じて選択変更イベントの追跡を続けています

問題は、私がこのアップデートを行ったときに、コールが1回しか期待されないうちに、コールバック(table_selection_change)が2回コールされることです。

答えて

1

問題は、dict全体を更新しないことです。関連するキーのみを更新する必要があります。

self.__table_data.selected['1d'] = {'indices':[my_new_index]} 

によって

self.__table_data.selected = {'2d': {'indices': []}, '1d': {'indices': [my_new_index]}, '0d': {'indices': [], 'glyph': None}} 

の交換

は、問題を解決します。

関連する問題