AngularJS ng-grid - > afterSelectionChange触发两次

时间:2013-11-17 05:39:30

标签: angularjs ng-grid

我有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 

问题是,如何确定新行?

2 个答案:

答案 0 :(得分:9)

您可以使用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;
  }
},

答案 1 :(得分:5)

检查row.selected 第一行应为false,发送行应为true。

  if(row && row.entity){
    if(row.selected){
       var selectedEntity = row.entity;
    }
  }