有条件地排序 - AngularJs
Ordering conditionally - AngularJs
我一直在尝试做的是有条件地设置用于订购我的 ng-repeat 值的值。
我尝试做的是采用用于添加 ng-classes 的条件方法,如下所示:
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'}]"
上面看到的最近添加的字符串将从下拉列表select编辑到select过滤器选项
如果 SortBy = true
ng-repeat="item in items | orderBy: [{'yyyy':sortBy}]"
关于如何使这项工作有任何想法,或者这是否可能?
更新
这是一个fiddle
如您所见,它不起作用。
如果您取消注释此行:
<!--li ng-repeat="item in activities"> -->
并注释掉这一行:
<li class="item_wrap" ng-repeat="item in activities | orderBy: [{'yyyy':recent}]">
您将看到列表项
首先,您的 select 必须有 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"
我一直在尝试做的是有条件地设置用于订购我的 ng-repeat 值的值。
我尝试做的是采用用于添加 ng-classes 的条件方法,如下所示:
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'}]"
上面看到的最近添加的字符串将从下拉列表select编辑到select过滤器选项
如果 SortBy = true
ng-repeat="item in items | orderBy: [{'yyyy':sortBy}]"
关于如何使这项工作有任何想法,或者这是否可能?
更新
这是一个fiddle
如您所见,它不起作用。
如果您取消注释此行:
<!--li ng-repeat="item in activities"> -->
并注释掉这一行:
<li class="item_wrap" ng-repeat="item in activities | orderBy: [{'yyyy':recent}]">
您将看到列表项
首先,您的 select 必须有 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"