AngularJS电子商务过滤器订购
我正在开发一个使用AngularJS构建的电子商务网站。该站点从JSON文件获取产品数据,以填充所有内容,包括类别页面上的过滤器 请参见下面使用虚拟数据的示例AngularJS电子商务过滤器订购,angularjs,e-commerce,Angularjs,E Commerce,我正在开发一个使用AngularJS构建的电子商务网站。该站点从JSON文件获取产品数据,以填充所有内容,包括类别页面上的过滤器 请参见下面使用虚拟数据的示例 BRAND Brand A Brand B Brand C Brand D COLOUR Red Green Purple Yellow FLOWERING TIME 8 weeks 10 weeks 7 weeks 9 weeks 我们试图做的是按字母顺序排列每个过滤器,但是如果我使用Angular的orderBy按品牌排列结果,
BRAND
Brand A
Brand B
Brand C
Brand D
COLOUR
Red
Green
Purple
Yellow
FLOWERING TIME
8 weeks
10 weeks
7 weeks
9 weeks
我们试图做的是按字母顺序排列每个过滤器,但是如果我使用Angular的orderBy按品牌排列结果,它实际上是按品牌排列产品本身,因此品牌A的产品也总是出现在其他过滤器中品牌B的产品之上
假设P1为品牌A,颜色为黄色,P2为品牌B,颜色为红色。然后,品牌的过滤器列表将正确排序,品牌A后接品牌B,但颜色的过滤器列表将错误,黄色在红色之上,因为品牌A始终位于顶部
问题是订购是由产品完成的,而不是输出的实际匹配结果
希望这是有意义的,如果有人能帮助解决这个问题,我们将不胜感激
编辑:添加代码
这是通过不同类型的过滤器循环的代码,然后通过产品获得匹配的过滤器标准
<section data-ng-repeat="(filter, array) in filters" class="widget widget-filter-multiselect" data-ng-class="{ long: array.length > 9 }">
<h3 class="widget-title">{{ filter }}</h3>
<div class="search-filter" data-ng-show="array.length > 9">
<input placeholder="Search {{ filter }}..." type="text" data-ng-model="search"/>
</div>
<!-- /.search-filter -->
<ul class="checklist">
<li data-ng-repeat="item in array | filter: search">
<a data-ng-class="{ active: checkActive(filter, item) }" data-ng-click="toggleFilter(filter, item); buildPath()">
<i class="unchecked fa fa-square-o"></i>
<i class="checked fa fa-check-square"></i>
<span data-ng-bind-html="item | highlightfilter:search"></span>
</a>
</li>
</ul>
</section>
控制器是一个绝对的庞然大物,所以我不确定要把它的哪些部分放在这里?如果没有至少一些模拟数据和/或代码,很难看到它。您是否有任何代码可以很容易地模仿出来,以便更容易理解正在发生的事情?您能给我们一个代码示例吗?添加代码很困难,因为代码太多了。我已经从模板文件中添加了代码,但是控制器是一堆函数,所以不确定哪些位有用?这将有助于发布项目本身的JSON。如果问题是这样的,您可能可以使用自定义过滤器从字段中删除名称