Обратный вызов события щелчка ячейки ng-grid

Я использую ng-grid и пытаюсь установить обратный вызов, когда нажимается ячейка. В этом обратном вызове я хочу знать строку и столбец ячейки. Лучший способ, который я нашел, — это использовать cellTemplate (и поместить событие onclick) в columnDefs для каждого столбца, что не очень СУХО:

$scope.gridOptions = { 
    data: 'myData',
    columnDefs: [{field: 'name', displayName: 'Name',
                  cellTemplate: '<div onclick="...">{{row.entity[col.field]}}</div>'
                  },
                  {field: 'age', displayName: 'Age', cellTemplate: ...}
                ]
};

Это тоже проблематично, так как ng-click не работает, и я не могу использовать область действия контроллера с onclick.

Также приветствуются решения, отличные от ng-grid.


person Jenian    schedule 24.04.2014    source источник


Ответы (1)


К сожалению, у ng-grid не очень хорошая концепция возврата номера столбца.

Если вы можете обойтись только номером строки, приведенный ниже плункер должен показать вам, как это сделать:

http://plnkr.co/edit/jYZWV9FpCdeENIETLEXV?p=preview

Вы используете функцию beforeSelectionChange, которая включает в себя rowItem. У этого есть номер строки и тому подобное.

Другой вариант — использовать шаблон ячейки для добавления атрибута данных в каждую ячейку с номером строки/столбца, а затем настроить прослушиватель событий для щелчка даже по нему. Если вы все еще используете много columnDefs и own, не будьте очень СУХИМ, но он будет немного более СУХИМ, чем то, что у вас есть сейчас.

person Casao    schedule 24.04.2014