SlickGrid onSelectedRowsChange срабатывает дважды, когда выбрано более одной строки?

(См. этот вопрос и этот вопрос для фона ...)

Дано:

grid = new Slick.Grid("#myGrid", data, columns, options);
grid.setSelectionModel(new Slick.RowSelectionModel());
grid.onSelectedRowsChanged.subscribe(function() { 
   row_ids = grid.getSelectedRows();
   console.log(row_ids);
});

... когда я выбираю одну строку ( скажем, строка 5), я получаю результат

[4]

... чего я и ожидал. Однако сочетание клавиш CMD + Click или SHIFT + Click по другой строке (скажем, строке 3) в дополнение к этой строке дает мне результат

[2]
[4, 2]

... что НЕ то, что я ожидал (я ожидал только [4, 2] ). Кажется, это происходит, пока количество выбранных строк > 1 . Итак, если бы я продолжил выбирать другую строку (скажем, строку 17), я бы получил это

[16]
[4, 2, 16]

. Я добавил точку останова в операторе console.log и проверил, что onSelectedRowsChanged запускается дважды: один раз для новой строки, по которой щелкнули мышью, и один раз для всех выбранных строк.

Почему это? Я хочу, чтобы он запускался только один раз , давая мне полный массив выбранных строк. Как бы я этого добился? Или мне что-то не хватает?

6
задан Community 23 May 2017 в 12:15
поделиться