AngularJS |Скрыть значок удаления на таблице после удаления только для этого элемента - PullRequest
0 голосов
/ 15 ноября 2018

В моем приложении по какой-то технической причине нам нужно проверить, прежде чем удалять элемент из таблицы. Это означает, что когда элемент помечен для удаления, нам нужно скрыть значок корзины. У меня это работает, но дело в том, что это происходит для всей таблицы.

Я хочу, чтобы значок удаления исчезал только для этого конкретного элемента.

HTML:

<td ng-if="!hideTrashIcon">
  <a  popover-trigger="'mouseenter'" uib-popover="Delete" ng-click="deleteModal(t)">
   <i class="fa fa-trash" aria-hidden="true"></i>
  </a>
</td>

CTRL:

  $scope.deleteIten = function (itemName) {
    $scope.deleting = true;
    $scope.hideTrashIcon = false;

    requestAPI.deleteItem(itemName).then(function success(res) {
      $scope.deleting = false;
      $scope.hideTrashIcon = true;
      $('#delete-modal').modal('hide');
      var dItem = _.findIndex($scope.items, function(i) { return i.itemName == itemName });
      $scope.items[dItem].isMarkedForDeletion = true;
    }, function error(res) {
      $scope.deleting = false;
      $scope.hideTrashIcon = false;
      $('#delete-modal').modal('hide');      
    })
  };

Видимо, я запутался, когда звоню в собственность. Мне как-то нужно передать itemName в hideTrashIcon. Может кто-нибудь помочь. ??? Заранее спасибо ..

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018
ng-if="!hideTrashIcon && !$scope.items[$index].isMarkedForDeletion"

Используйте $ index элемента в ng-repeat $ scope.items при генерации строк таблицы.

0 голосов
/ 15 ноября 2018

Итак, чтобы ответить на мой собственный вопрос. Вместо использования другого тега для hideTrashIcon, я использовал это:

ng-if="!t.isMarkedForDeletion"

Я также поместил его в промежуток, чтобы избежать исчезновения строки в таблице.

0 голосов
/ 15 ноября 2018

Возможно, у вас есть орфографическая ошибка в первой строке, вы хотели использовать «deleteIten»?

$ scope.deleteIten = function (itemName) {

...