ph3*_*ell 10 angularjs angularjs-ng-repeat angularjs-filter
所以我有一个数组,我正在使用ng-repeat来渲染,但我想反转这个列表.以前我使用过这个答案得到的过滤器:反向角度重复
但现在我收到一个错误:"TypeError:Object#在Scope中没有方法'slice'." 我不确定这是因为AngularJS的新版本还是我遗漏了什么.
这是我的过滤器代码:
.filter('reverse', function () {
return function(items) {
return items.slice().reverse();
};
Run Code Online (Sandbox Code Playgroud)
这是我在div中查看的代码:
data-ng-repeat='feed in feeds | reverse'
Run Code Online (Sandbox Code Playgroud)
小智 18
要使数组反向渲染并按'id'排序,这应该有效:
data-ng-repeat="feed in feeds | orderBy:'id':true"
Run Code Online (Sandbox Code Playgroud)
如果这对您有用,请告诉我.
供您参考:http://jsfiddle.net/byizzy/pgPVU/3/
Sha*_*yam 12
这有点棘手,但对于所有对转换数组感兴趣的人而不创建新的谓词函数和/或修改数组等...
ng-repeat="feed in feeds | orderBy:'':true"
Run Code Online (Sandbox Code Playgroud)
要么
ng-repeat="feed in feeds | orderBy:'-'"
Run Code Online (Sandbox Code Playgroud)
说明
如果将第二个参数留空字符串,则Angular将按数组的默认顺序(索引)排序,最后添加true
将启用reverse
Angular参数orderBy
请直接使用反向的Java脚本切片函数,如下所示:
data-ng-repeat="item in items.slice().reverse()"
Run Code Online (Sandbox Code Playgroud)
单个 feed 的结构是怎样的?看来您可以使用 Angular 的内置过滤器来按照您想要的方式对其进行排序。例如,如果字段“id”是在数组中提供“order”的字段,则您可以这样做:
data-ng-repeat='feed in feeds | orderBy:id'
Run Code Online (Sandbox Code Playgroud)
如果你想扭转这种情况,你只需这样做:
data-ng-repeat='feed in feeds | orderBy:id:reverse'
Run Code Online (Sandbox Code Playgroud)
那有意义吗?不确定您是否需要自己的过滤器。如果是这种情况,也许可以尝试调试(即写入控制台或其他方式)以查看实际传递的内容。如果它不是一个数组,那就是你的问题,否则试试这个:
return Array.prototype.slice.call(items).reverse();
Run Code Online (Sandbox Code Playgroud)
让我知道其中任何一个是否适合您!
归档时间: |
|
查看次数: |
28528 次 |
最近记录: |