ng-hide 隐藏所有图标
ng-hide hiding all icons
我有一个 table 并且正在使用 ng-repeat 来填充行。在一个 table 单元格中,我有一些很棒的字体图标。特别是一个删除图标。我想根据其商店 ID 显示或隐藏该图标。我在控制器中将一个变量最初设置为 false。如果我删除 else 块,那么所有删除图标都会被隐藏。如果我没有 else 块,那么 none 的删除图标会被隐藏
控制器
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 件商品的 ID 为:
- -1
- 3
没有 "else" :
- 第一项 return
items[i].storeID > 0
为真,所以 vm.myItem = true
- 第二项return对于
items[i].storeID > 0
是错误的,所以vm.myItem
留在true
最后:vm.myItem
值为true
,所有图标都将被隐藏
随着 "esle" :
- 第一项 return
items[i].storeID > 0
为真,所以 vm.myItem = true
- 第二项return对于
items[i].storeID > 0
是错误的,所以vm.myItem = false
最后:vm.myItem
值为false
,所有图标都可见
纠正我,如果我错了,我有一个从服务器生成的数据列表,我想使用 ng-repeat
和 删除图标 [=如果storeID > 0,将显示23=],如果我是对的,那么您可以使用以下代码:
控制器
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>
我有一个 table 并且正在使用 ng-repeat 来填充行。在一个 table 单元格中,我有一些很棒的字体图标。特别是一个删除图标。我想根据其商店 ID 显示或隐藏该图标。我在控制器中将一个变量最初设置为 false。如果我删除 else 块,那么所有删除图标都会被隐藏。如果我没有 else 块,那么 none 的删除图标会被隐藏
控制器
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 件商品的 ID 为:
- -1
- 3
没有 "else" :
- 第一项 return
items[i].storeID > 0
为真,所以vm.myItem = true
- 第二项return对于
items[i].storeID > 0
是错误的,所以vm.myItem
留在true
最后:vm.myItem
值为true
,所有图标都将被隐藏
随着 "esle" :
- 第一项 return
items[i].storeID > 0
为真,所以vm.myItem = true
- 第二项return对于
items[i].storeID > 0
是错误的,所以vm.myItem = false
最后:vm.myItem
值为false
,所有图标都可见
纠正我,如果我错了,我有一个从服务器生成的数据列表,我想使用 ng-repeat
和 删除图标 [=如果storeID > 0,将显示23=],如果我是对的,那么您可以使用以下代码:
控制器
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>