使用 NG-重复将按不同类别排序的所有项目打印成行
using ng-repeat to print out all items sorted by different categories into rows
所以,我设法以一种非常混乱的方式从列表中打印出
项目,迫切需要重构假设我有一个对象数组,例如
var items = [{name: "toaster", price: 10, category: "appliance"},{name: "spade", price: 5, category: "tool"},{name: "hoe", price: 5, category: "tool"},{name: "microwave", price: 10, category: "appliance"}]
使用 ng-repeat,我想根据类别将每个项目的名称和价格打印成一行,而不必有很多混乱的代码。 目前我的代码如下所示:
<section class="container">
<div class="row">
<h3>Tool</h3>
<ul class="list-group col-lg-2 col-sm-3 col-xs-4" ng-repeat="item in ctrl.items | filter: { category:'tool'}">
<li class="list-group-item">
<p>Name: {{item.name}} </p>
<p>Price: £{{item.price}} </p>
</li>
</ul>
</div>
</section>
<section class="container">
<div class="row">
<h3>Appliances</h3>
<ul class="list-group col-lg-2 col-sm-3 col-xs-4" ng-repeat="item in ctrl.items | filter: { category:'appliance'}">
<li class="list-group-item">
<p>Name: {{item.name}} </p>
<p>Price: £{{item.price}} </p>
</li>
</ul>
</div>
</section>
有没有办法让这个不那么混乱? 我是否必须将对象预置到控制器中的不同数组中? 或者有没有更好的方法来使用过滤器方法?
编辑
理想情况下,生成的 html 应如下所示
<section class="container">
<div class="row">
<h3>Appliance</h3>
<ul>
<li class="list-group-item">
<p>Name: Toaster </p>
<p>Price: £10</p>
</li>
<li class="list-group-item">
<p>Name: Microwave</p>
<p>Price: £10</p>
</li>
</ul>
<h3>tool</h3>
<ul>
<li class="list-group-item">
<p>Name: Hoe</p>
<p>Price: £5</p>
</li>
<li class="list-group-item">
<p>Name: Spade</p>
<p>Price: £5</p>
</li>
</ul>
</div>
</section>
它应该看起来像那样
如果我正确理解了这个问题,您实际上正在寻找的是您要根据"类别"键对数据进行排序。
出于排序目的,您应该使用angularjs提供的"orderBy"过滤器。
<section class="container">
<div class="row">
<h3>Sort By Category</h3>
<ul class="list-group col-lg-2 col-sm-3 col-xs-4" ng-repeat="item in ctrl.items | orderBy: 'category'">
<li class="list-group-item">
<p>Name: {{item.name}} </p>
<p>Price: £{{item.price}} </p>
</li>
</ul>
</div>
</section>
这应该可以解决问题。
有关更多信息,您可以参考此链接
相关文章:
- 正在将数据主题添加到所有项目
- 使用javascript将动态表从一个html页面打印到另一个html页
- JavaScript打印功能使日历停止工作
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 如何检查管道中未定义的项目
- 如何以异步方式打印q中的项目
- 原始javascript将json对象中的项目打印到列表中的屏幕上
- 在 Javascript 中连续打印 X 数量的项目
- 仅打印页面上的选定项目
- Backbone-简单集合视图-can't打印项目
- 如何在html中打印选中的项目到下拉列表
- Unicode项目符号打印为问号
- 如何使用AJAX显示/打印从数据库中获取的每个项目/对象的属性名称
- 我无法从元素中打印项目.量角器中的所有语句
- 离子1:离子列表打印所选项目值
- 如何使用jquery或php中的javascript从引导程序下拉列表中打印所选项目
- 使用 NG-重复将按不同类别排序的所有项目打印成行
- 如何打印出 3 个项目,它与 2 个输入(价格和数量)相关联
- 打印本地存储项目的概览
- 只打印下拉列表中选定的项目