ng-hide隐藏所有图标

时间:2016-06-05 18:03:55

标签: javascript angularjs ng-hide

我有一张桌子并且使用ng-repeat来填充行。在一个表格单元格中,我有一些字体很棒的图标。一个特别是删除图标。我想根据商店ID显示或隐藏该图标。我在控制器中最初将变量设置为false。如果我删除了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>

2 个答案:

答案 0 :(得分:1)

纠正我,如果我错了,我有一个从服务器生成的数据列表,我想使用ng-repeat删除图标来显示这些数据如果 storeID&gt;显示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>

答案 1 :(得分:0)

没有数据很难分辨。

但是,假设您有2个带有ID的项目:

  1. -1
  2. 3
  3. 没有“其他”:

    1. items[i].storeID > 0的第一项返回true,所以vm.myItem = true
    2. items[i].storeID > 0的第二项返回false,因此vm.myItem逗留true
    3. 最后:vm.myItem值为true,所有图标都将隐藏

      用“esle”:

      1. items[i].storeID > 0的第一项返回true,所以vm.myItem = true
      2. 第二项为items[i].storeID > 0返回false,所以vm.myItem = false
      3. 最后:vm.myItem值为false,所有图标均可见