В нижнем plunkr есть ng-сетка с некоторыми записями. Каждая строка в ng-сетке имеет кнопку удаления, при нажатии этой кнопки прослушиватель не вызывается.
[http://plnkr.co/edit/ffEfZP8ygV1pMD8PGQgV?p=preview][1]
Скажите, почему этот слушатель не вызывается на клик
Проблема, если с вами использовать переменную $ index в вашем шаблоне. Попробуйте вот так:
ng-click="grid.appScope.removeRow(row)"
И затем, в вашей функции removeRow, вы теперь получаете объект строки. Просто найдите его в своем Data Object и удалите его.
var index = $scope.myData.indexOf(row.entity);
$scope.gridOptions.data.splice(index, 1);
Вам нужно добавить $scope.apply();
в конце метода AddToGrid
как AddToGrid
ниже
$scope.addToGrid = function() {
$scope.myData.push({
"firstName": $scope.firstName,
"lastName": $scope.lastName,
"company": $scope.company,
"employed": $scope.employed
});
$scope.firstName = '';
$scope.lastName = '';
$scope.company = '';
$scope.employed = false;
$scope.apply();
}
$scope.apply()
в функцию addToGrid
?
alert(1)
в начале метода, и он вызывается, и запись добавляется в myData. Таким образом, единственная проблема заключается в том, что изменения не отражаются в пользовательском интерфейсе, с помощью $ scope.apply () вы заставляете angular перепривязывать значения
ng-click="removeRow(grid.appScope.removeRow(row))"
, почемуng-click="removeRow(grid.appScope.removeRow(row))"
работает, аng-click="removeRow()"
(без параметров) не работает?