根据本地存储中的列表过滤 ng-repeat
Filtering ng-repeat against a list in local storage
>I' 将本地存储中的 ID 列表存储为列表,我想在加载 JSON 对象并使用 ng-repeat 循环访问此 JSON 对象中的对象时对其进行过滤。我的想法是任何使用 ng-repeat 显示的项目,如果它们的 ID 在列表中,那么我不想显示它们。
我正在构建一个通知页面,如果消息已被阅读,那么我将通知的 ID 存储在本地存储中,以便我可以跟踪已读取的通知。然后,当我收到带有任何新通知的新 JSON 对象时,我可以检查该 JSON 对象中的哪些通知已被读取,然后不显示它们。
我不太确定如何使用ng-repeat过滤它们,有什么想法吗?
谢谢
斯蒂芬
var myApp = angular.module("myApp", []);
myApp.controller("myController1", function($scope) {
$scope.hideblocked = function(blockedIds) {
return function(item) {
return blockedIds.indexOf(item.id) == -1;
}
}
$scope.blockedIds = [1, 5];
$scope.items = [{
"id": 1,
"name": "a"
}, {
"id": 2,
"name": "b"
}, {
"id": 5,
"name": "c"
}, {
"id": 8,
"name": "d"
}, {
"id": 12,
"name": "e"
}, {
"id": 3,
"name": "f"
}];
$scope.blockedIds2 = ["1", "5"];
$scope.items2 = [{
"id": "1",
"name": "a"
}, {
"id": "2",
"name": "b"
}, {
"id": "5",
"name": "c"
}, {
"id": "8",
"name": "d"
}, {
"id": "12",
"name": "e"
}, {
"id": "3",
"name": "f"
}];
$scope.block = function(blockedIds, id) {
if (blockedIds.indexOf(id) == -1) {
blockedIds.push(id);
}
};
});
<div ng-app="myApp" ng-controller="myController1">
If id is a number :
<span ng-repeat="item in items| filter:hideblocked(blockedIds)">{{item.name}}</span>
<button ng-click="block(blockedIds,3)">block f</button>
<br/>If id is a string:
<span ng-repeat="item in items2| filter:hideblocked(blockedIds2)">{{item.name}}</span>
<button ng-click="block(blockedIds2,'3')">block f</button>
</div>
<script src="https://code.angularjs.org/1.3.8/angular.min.js"></script>
相关文章:
- Angular:使用选择列表选择过滤代码中的对象
- 条件过滤列表显示在angularjs中
- 使用下拉列表过滤 ng 重复,而不复制下拉选项
- 按AngularJS中名字的第一个字母过滤人员列表
- 转换UL->li inot为同位素过滤菜单选择的列表
- jQuery Mobile-过滤复选框的列表视图会导致出现无样式的复选框
- jQuery移动列表过滤:如何更改清除按钮文本
- 如何在AngularJS中按变量过滤列表
- 过滤具有2个选择列表的元素
- 使用过滤后的“”上的箭头键;ul”;列表
- AngularJS不过滤产品列表
- 根据本地存储中的列表过滤 ng-repeat
- 使用 JavaScript 在数据表 (MVC 3) 中进行选择列表过滤
- 标签列表过滤动画
- 用列表过滤对象列表- Javascript
- 如何通过免费文本和多个下拉列表过滤ng-repeat
- 如何使用下拉列表过滤剑道UI MVC网格
- 如何使用 jQuery 使用菜单列表过滤表数据
- 如何根据预定义的列表过滤json列表
- Emberjs -连接一个{{input}}过滤器栏与我的对象列表.当我输入时,列表过滤