[英]Ordering conditionally - AngularJs
我一直试图做的是有条件地设置值,以便通过它们来排序ng-repeat值。
我试图做的是采用用于添加ng-class的条件方法,如下所示:
ng-class="{'active':item.selected}"
并将其与日期orderBy方法结合使用:
ng-repeat="item in filterPosts | orderBy:['yyyy','mm','dd']"
这将导致以下任一情况,但不幸的是,这些都不起作用。
ng-repeat="item in items | orderBy: [{('yyyy','mm','dd'):(sortBy=='Recently Added')}]"
ng-repeat="item in items | orderBy: [{'yyyy':(sortBy=='Recently Added')}]"
ng-repeat="item in items | orderBy: [{'yyyy':sortBy=='Recently Added'}]"
如上所示,最近添加的字符串将从下拉列表中选择以选择过滤器选项
如果SortBy = true
ng-repeat="item in items | orderBy: [{'yyyy':sortBy}]"
关于如何进行这项工作的任何想法,或者是否可行?
更新
这是一个小提琴
如您所见,它不起作用。
如果您取消注释此行:
<!--li ng-repeat="item in activities"> -->
并注释掉这一行:
<li class="item_wrap" ng-repeat="item in activities | orderBy: [{'yyyy':recent}]">
您将看到列表项
首先,您的选择必须具有ng-change指令才能分配sortBy参数。 像下面
<select ng-init="sortBy='+date'" ng-model="sortType" ng-change="sortBy= sortType=='Recently Added' ? '-date':sortType=='Name' ? '+name':'+date';">
<option>Recently Added</option>
<option>Name</option>
</select>
然后您的中继器指令应该是这样的
ng-repeat="item in items | orderBy:sortBy:true"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.