问题标签 [angularjs-orderby]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - 如何在使用 orderBy 过滤器的 ng-repeat 的更新范围内正确使用 ng-if
我有一个聊天消息显示,顶部显示最旧的消息,底部显示最新的消息。我在数组ng-repeat
上使用一个$scope.messages
,新的聊天消息会动态添加到该数组中。有ng-repeat
一个orderBy
过滤器组件来帮助按创建日期对消息进行排序。
ng-if
当同一用户在同一天发送消息时,我试图用来隐藏 HTML 的某些方面(用户的头像、姓名、msg 时间戳等)。但是,当向数组添加新消息时,我的逻辑就搞砸了。$scope.messages
HTML 的缩短版本:
这是适用的聊天控制器:
乍一看,此代码有效。最初,由于orderBy
过滤器,位于最后一个索引处的$scope.messages
消息实际上是第一条消息,而位于0索引处的消息是最后添加的消息。
但是,每当添加新消息时,Angular 都会动态更新范围,并且在orderBy
应用过滤器之前的一瞬间,该新消息位于$scope.messages
. 这抛弃了我的ng-if
方法背后的逻辑,因此来自同一用户的每条新消息都显示了我想要隐藏的 HTML 元素(即它在方法上返回trueng-if
)。
根据console.logging
我的广泛介绍,在为 编译 HTML 时,索引为0ng-if
的消息仍然是发送的最后一条消息(不是最新消息)的第二个消息,而最新、最新的消息实际上是数组的最后一个索引。这会导致第一条语句生效,并为同一用户在同一天发送的每条新消息显示 HTML 元素(除非我刷新页面,其中所有内容都正确显示)。if
任何人都可以想到的解决方法?
angularjs - 带有整数字符串的Angularjs orderBy
我有一个 Ex 的数据集:
我使用这些数据作为来源ng-repeat
,
我想friends
按score
顺序descending
排序。如下所示,
但我得到的输出是,
这是一个演示 Plunker
请注意-21 和 -35 在输出中的顺序不正确,这是因为该score
属性是一个String
值。如果我将其更改为int
值,那么一切都按预期工作。如何克服这个问题,请考虑我无法更改score
属性的类型。
javascript - AngularJS自定义过滤器orderBy sortPredicate不起作用
问题是我有一组配方对象。每个配方对象都有一些评论。我想使用 angular 提供的 $filter 服务对 angularJS 控制器中的数组进行排序。
但它没有给出所需的结果。但是,我可以使用这样的 JS 数组排序功能来实现所需的结果
相同场景的 Plunkr 是:http ://plnkr.co/edit/L9Bt67xHRCJLBoWG8EZp?p=preview
提前致谢。请帮忙!
javascript - Parse + Angular orderBy 问题
我在 Angular 中有一个表格的 ng-repeat。数据来自 Parse。
当我 orderBy 'id' 或 'createdAt' 排序工作正常。如何按总计、税金或 paymentType 进行订购?
javascript - 编辑orderby-property时AngularJS orderby不起作用
我在我的范围内有一个对象列表,并且想要遍历它们,以按某些属性排序的方式显示它们的一些属性并更改它们。
ng-repeat 用于显示绑定到我的列表的每个对象的文本框,并应用了将“位置”作为参数的 orderby 过滤器。
再一次,位置也是可编辑的!
现在我们改变某个对象的位置一次(角度按预期重新排序列表)然后改变两次。Angular 不会重新排序列表。
谁能解释如何解决这种仅重新订购一次的情况以及这种行为的原因是什么?
这是小提琴:JSFiddle
HTML
JS
angularjs - 有没有办法选择性地限制在 AngularJs 中的 ng-repeat 上 OrderBy 的应用?
在我的应用程序中,我正在迭代一个数组,其值绑定到文本框(基本上输入类型 =“数字”)。IE,
说,
这个 Plnkr 链接 - http://plnkr.co/edit/?p=preview&s=D7hhm2al6sOXMHwQ
演示我在说什么。
因此,只要我更改文本框的值,就会重新排序。我不希望这种情况发生,因为它让我的用户不得不搜索他们刚刚编辑的框。我想要一个解决方案,在第一次创建dom时订购ng-repeat,但在重新创建它们之前不会再次订购。我怎样才能做到这一点?请帮忙。
angularjs - ng-repeat 中的 Angularjs orderBy 无法按预期工作
我的模板中有以下 div:
console.log(JSON.stringify($scope.billing_history))
给了我以下内容:
无论如何,这就是显示的内容:
我试过orderBy:'-timestamp'
了orderBy:'+timestamp'
我真的不确定为什么这不起作用。有没有人看到任何可能出错的地方?
angularjs - 动态 orderBy 在 AngularJS 中打破 ng-repeat
我在动态订购通过控制器中的服务获取的数据时遇到问题。当我进行初始搜索时,数据加载得很好,但是一旦我尝试更新 orderBy,我视图中的所有数据都会消失而不是重新排序。我在视图中显示的数据是存储到 $scope.filtered_events 的数据。此外,我的控制器通过路由器连接到模板。
搜索控制器
模板
邮政编码服务
编辑 - 添加了以下数据结构$scope.filtered_events
:
angularjs - AngularJS orderBy子属性不起作用
如何按子属性订购项目列表"active" : true
?第一个节点是为每个朋友动态插入的 id。
html - orderBy 在 HTML div 中不起作用
我正在尝试在 div 中实现 ng-repeat 功能。为此,我需要先对数据进行排序(根据对象提供的排名),然后将其命名为 div。所以我正在创建一个自定义 OrderBy 函数。我的排序功能运行良好。但是,我总是得到相同的 div 顺序。(事实上,与我需要的完全相反)。我尝试使用反向功能,但它不起作用。
我的排序代码如下所示:
我的 HTML div 看起来像这样,
我在控制台中得到了正确的输出。但是,无论我做什么,div 总是按照下面给出的顺序排列。
日产、克莱斯勒、现代、丰田、福特。
我需要它们的顺序:福特、丰田、现代、克莱斯勒、日产。
注意:不要担心“数据中的名称”部分,它运作良好。我在使用“OrderBy”时遇到问题。