使用AngularJS过滤JSON数据
Filter JSON Data with AngularJS
我将JSON对象绑定到一个列表,但我只想为每个用户显示一个(第一个,因为结果是有序的)项。我得到的JSON是按项目的,以用户对象为属性(item.user.username等)
var arr = ... JSON objects ...
var seen_users = [];
var items = [];
$.each(arr, function(i, item){
if (!$.inArray(item.user.id, arr) === -1){
items.push(item);
seen_users.push(item.user.id);
}
}
但是,有没有一种更具角度的丁字裤方式可以做到这一点?我一直在研究过滤器,但无法找到一种简单的方法(除了像上面那样迭代绑定数据)来做到这一点。
更新:
AngularJS代码有点太多了,但基本上我的控制器中有一个JSON对象的$scope.items数组,我通过$http和ItemFactory提供的API获得了它,还有非常基本的HTML来显示内容:
<ul id="items">
<li class="item" data-ng-repeat="item in items">
{{item.title}} | {{item.posted}}
</li>
</ul>
您可以创建类似的自定义过滤器
app.filter('myFilter', [function () {
return function (arr) {
var seen_users = [];
var items = [];
$.each(arr, function (i, item) {
if (!$.inArray(item.user.id, arr) === -1) {
items.push(item);
seen_users.push(item.user.id);
}
});
return seen_users;
};
}]);
并在像这样的模板中使用它
<li class="item" data-ng-repeat="item in (items | myFilter)">
在html中,您可以如下索引数组:更新:
<ul>
<li>
{{item[0].title}} | {{item[0].posted}}
</li>
</ul>
你的脚本应该是这样的:
$scope.items = []; // with your data in it.
还有其他几种方法可以做到这一点。如果您希望它是动态的(例如,如果您希望稍后按需显示更多项目:
<span data-ng-repeat="item in displayItems">
{{item.user.id}}
</span>
其脚本如下:
$scope.items = []; // this is your original array with all the data in it.
$scope.displayItems = []; // this is an empty array that a function will fill up with data
myFunction = function(){
// put data selection logic here
$scope.displayItems.push($scope.items[i]);
};
相关文章:
- 无法使用变量访问数据 JSON
- 使用 ng-repeat解析不均匀数据/ json对象
- 在没有jsonp的情况下从另一个域获取数据(json格式)
- 如何获取带参数的数据json
- 如何在android中显示实时雅虎金融股票数据..json格式如下所示
- 使用 JavaScript 将数据 json 显示到网页中
- 高位图表来源于API数据(JSON)
- 使用动态数据json初始化同位素
- Django:将数据JSON从视图传递给javascript
- 存储配置数据 (json)
- 未捕获的SyntaxError:意外的标识符图像数据json
- 接收数据json/jquery
- Jquery数据表数据json
- 不能在cakephp中使用数组数据json
- 在不锁定浏览器的情况下,将大数据JSON从REST请求反序列化为对象
- 如何读取数据JSON格式数组的字符串数据
- 我有一个流星应用程序,需要从/public/_assets/results/mmresults读取数据.Json文件,在
- 数据json不显示在html
- 使用2个下拉列表创建2个并排的表行来比较数据- JSON
- 需要将复杂的json对象转换为合适的angularjs UI树数据json结构