2016-11-08 72 views
0

我有一個帶有Select,DataTable和Button的散景UI。Bokeh TableData on_change被選中的事件被調用兩次

  • 選擇允許直接去定行DataTable中
  • 按鈕可進入下一行DataTable中
  • 數據表可以直接單行選擇(因此更新,請選擇)。

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

    當點擊按鈕時,更改的DataTable源的一個新的字典結構所選擇的屬性作爲看出here

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

DataTable中不斷通過對選擇變化事件跟蹤

問題是,當我做了這個更新時,我的回調(table_selection_change)被調用兩次,而我只期待一次調用。

回答

1

問題是整個字典不應該更新。只有相關的密鑰必須更新。

通過

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

更換

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

解決了這個問題。