AngularJS ng-grid -> afterSelectionChange срабатывает дважды

У меня есть параметры ng-grid:

afterSelectionChange: function (row, event) {
                console.log("Event: " + event);
                console.log("Row: " + row.rowIndex);
            },

При первом выборе строки она работает так, как ожидалось. Во второй раз он срабатывает дважды, один раз для удаляемой строки и еще раз для новой строки. Это отлично. Проблема в том, что я хочу выполнить действие один раз для новой строки. Единственный способ сделать это — изучить событие. Однако событие не определено.

Выход:

Event: undefined activityGridController.js:13
Row: 0 activityGridController.js:14
Event: undefined activityGridController.js:13
Row: 1 

Вопрос в том, как определить новую строку?


person Robert Christian    schedule 17.11.2013    source источник


Ответы (2)


Вы можете просто установить дополнительное свойство с помощью события beforeSelectionChange. Что-то вроде этого

beforeSelectionChange: function(row) {
  row.changed = true;
  return true;
},
afterSelectionChange: function (row, event) {
  if (row.changed){
    console.log("deal with row " + row.rowIndex);
    row.changed=false;
  }
},
person AardVark71    schedule 18.11.2013
comment
Отличное решение! Я впечатлен, у него всего 7 голосов. Работал на меня. - person sports; 24.11.2015

проверьте строку. Выбранная первая строка должна быть ложной, а строка отправки должна быть истинной.

  if(row && row.entity){
    if(row.selected){
       var selectedEntity = row.entity;
    }
  }
person Sanath    schedule 14.05.2014