Событие щелчка по угловой сетке не вызвано

0

В нижнем plunkr есть ng-сетка с некоторыми записями. Каждая строка в ng-сетке имеет кнопку удаления, при нажатии этой кнопки прослушиватель не вызывается.

[http://plnkr.co/edit/ffEfZP8ygV1pMD8PGQgV?p=preview][1]

Скажите, почему этот слушатель не вызывается на клик

Теги:
angularjs-ng-click
ng-grid

2 ответа

0
Лучший ответ

Проблема, если с вами использовать переменную $ index в вашем шаблоне. Попробуйте вот так:

ng-click="grid.appScope.removeRow(row)"

И затем, в вашей функции removeRow, вы теперь получаете объект строки. Просто найдите его в своем Data Object и удалите его.

var index = $scope.myData.indexOf(row.entity);
$scope.gridOptions.data.splice(index, 1);
  • 0
    Большое спасибо. но у меня есть разъяснение по этому ng-click="removeRow(grid.appScope.removeRow(row))" , почему ng-click="removeRow(grid.appScope.removeRow(row))" работает, а ng-click="removeRow()" (без параметров) не работает?
  • 0
    Я не совсем уверен, но я полагаю, это потому, что Сетка создает новую Сферу для себя. Таким образом, внешний RemoveRow находится не в области $ вашего приложения, а в вашей Grid-Scope. И вы используете Grid-Scope.removeRow для вызова AppScope.removeRow. А поскольку они находятся в разных областях, вам нужно передать параметры, чтобы это работало.
0

Вам нужно добавить $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();

  }
  • 0
    Почему я должен добавить $scope.apply() в функцию addToGrid ?
  • 0
    @Vimal Ваш метод уже вызван, добавьте alert(1) в начале метода, и он вызывается, и запись добавляется в myData. Таким образом, единственная проблема заключается в том, что изменения не отражаются в пользовательском интерфейсе, с помощью $ scope.apply () вы заставляете angular перепривязывать значения

Ещё вопросы

Сообщество Overcoder
Наверх
Меню