скрыть все значки

0

У меня есть таблица и я использую ng-repeat для заполнения строк. В одной ячейке таблицы у меня есть несколько шрифтовых удивительных значков. В частности, это значок удаления. Я хочу показать или скрыть этот значок на основе его идентификатора магазина. У меня в контроллере задана переменная изначально как ложная. Если я удалю блок else, все значки удаления будут скрыты. Если у меня нет блокировки else, тогда ни один из значков удаления не будет скрыт

контроллер

vm.myItem = false;
function scrollItems() {
    var items;
    if (vm.fetchCriteria != null) {
        inventoryDataService.getItemList(vm.Criteria).then(function (result) {
            vm.data = result.data;
            items = vm.data;
            for (var i = 0; i < vm.data.length; i++) {
                if (items[i].storeID > 0) {
                    vm.myItem = true;
                }
                else {
                    vm.myItem = false;
                }
                vm.items.push(items[i]);
            }
        });
    }
}

HTML:

<td ng-bind="item.onHandQty" ng-model="quantity"></td>
<td>
    <a ng-click="vm.open(item)"><i class="fa fa-pencil fa-2x"></i></a>
    <a ng-click="vm.removeItem(item)><i ng-hide="vm.myItem" class="fa fa-trash fa-2x link-icon"></i></a>
    <a href="#"><i class="fa fa-link fa-2x link-icon"></i></a>
</td>
Теги:
ng-hide

2 ответа

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

Исправьте меня, если я ошибаюсь, у меня есть список данных, которые генерируются на сервере, и я хочу показать эти данные, используя значок ng-repeat и delete, будет отображаться, если storeID> 0, если я прав, то вы можете использовать следующий код:

контроллер

function scrollItems() {
   if (vm.fetchCriteria != null) {
       inventoryDataService
           .getItemList(vm.Criteria)
           .then(function (result) {
              vm.data = result.data;
           });
   }
}

HTML

 <tr ng-repeat="item in vm.data track by $index">

     <td ng-bind="item.onHandQty" ng-model="quantity"></td>

     <td>
         <a ng-click="vm.open(item)"><i class="fa fa-pencil fa-2x"></i></a>
         <a ng-click="vm.removeItem(item)"><i ng-show="item.storeID > 0" class="fa fa-trash fa-2x link-icon"></i></a>
         <a href="#"><i class="fa fa-link fa-2x link-icon"></i></a>
    </td>

 </tr>
  • 0
    Правильно, но в этом изменении все значки удаления все еще скрыты, поэтому я думаю, что у меня есть проблема еще где
0

Трудно сказать без данных.

Но скажем, у вас есть 2 предмета с идентификаторами:

  1. -1
  2. 3

Без "else":

  1. первый элемент возвращает true для items[i].storeID > 0, поэтому vm.myItem = true
  2. второй элемент возвращает false для items[i].storeID > 0, поэтому vm.myItem остается true

В конце: значение vm.myItem true и все значки будут скрыты

С "esle":

  1. первый элемент возвращает true для items[i].storeID > 0, поэтому vm.myItem = true
  2. второй элемент возвращает false для items[i].storeID > 0, поэтому vm.myItem = false

В конце: значение vm.myItem равно false, и все значки видны

Ещё вопросы

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