我有一个名为$scope.segments
的对象数组,如下所示:
[
{
"_id": "55d1167655745c8d3679cdb5",
"job_id": "55d0a6feab0332116d74b253",
"status": "available",
"sequence": 1,
"body_original": "Such a fork",
"__v": 0,
"body_translated": "Tal bifurcación"
},
{
"_id": "55d1167655745c8d3679cdb4",
"job_id": "55d0a6feab0332116d74b253",
"status": "available",
"sequence": 0,
"body_original": "So this is it.",
"__v": 0,
"body_translated": "Así que esto es."
}
]
我需要按顺序按顺序排序。所以,我需要首先出现序列0,然后出现序列1,依此类推。在一个视图中,我正在这样做,它的工作原理:
<ul ng-repeat="segment in segments | orderBy: 'sequence'">
<li>{{ segment.sequence }}</li>
</u>
但是,我需要orderBy过滤器才能在控制器中工作。我这样做:
$scope.test = $filter('orderBy')($scope.segments, 'sequence');
其中,$ scope.test应该是基于sequence属性的有序对象数组。但是,当我执行console.log('$ scope.test')时,会显示一个空数组([]
)。我想$过滤器在控制器中不起作用。
关于如何解决这个问题的任何想法?谢谢!
答案 0 :(得分:6)
我猜你刚才没有在你的控制器中正确注入entityManager.createNativeQuery()
服务,因为这对我有用。
$filter
答案 1 :(得分:3)
你总是可以对数组进行排序(然后你甚至可以在视图中省略orderBy
- 尽管如果添加了任何内容,你会失去一些绑定的魔力):
$scope.segments.sort(function(a, b) {
return a.sequence - b.sequence;
});
答案 2 :(得分:0)
如tymeJV所述,API调用是异步的,所以问题是缺少数据来帮助回答它。