AngularJs的命令在一片深深的田野旁
AngularJs orderBy a deep field?
所以,我的问题有两个部分,但首先,这里是我正在处理的示例数据:
var candidates = [{
"candidateId": 1,
"firstName": "John",
"lastName": "Smith",
"email": "Smith@example.com",
"tasks": [{"taskId":1, "taskState": 3},
{"taskId":2, "taskState": 3},
{"taskId":3, "taskState": 3},
{"taskId":4, "taskState": 1},
{"taskId":5, "taskState": 2}]
},
{
"candidateId": 2,
"firstName": "John",
"lastName": "Doe",
"email": "Doe@example.com",
"tasks": [{"taskId":1, "taskState": 3},
{"taskId":2, "taskState": 3},
{"taskId":3, "taskState": 2},
{"taskId":4, "taskState": 3},
{"taskId":5, "taskState": 3}]
}];
第一部分是:我想按已完成任务的最高数量排序(例如,3表示已完成)。整天都在努力寻找解决方案,但没有成功。(尝试通过在将对象附加到scope/vm之前添加numOfCompletedTasks
属性来扩充对象,以及其他尝试)
问题的第二部分是:我开始怀疑这是否是前端的任务,我的意思是,如果我有1000条记录,我必须循环通过,并获得已完成任务的数量,这不是后端任务吗(这里的最佳实践是什么)
对于第一部分,您看起来像这样?
$scope.candidates = [
{
"candidateId": 1,
"firstName": "John",
"lastName": "Smith",
"email": "Smith@example.com",
"tasks": [{"taskId":1, "taskState": 3},
{"taskId":2, "taskState": 3},
{"taskId":3, "taskState": 3},
{"taskId":4, "taskState": 1},
{"taskId":5, "taskState": 2}]
},
{
"candidateId": 2,
"firstName": "John",
"lastName": "Doe",
"email": "Doe@example.com",
"tasks": [{"taskId":1, "taskState": 3},
{"taskId":2, "taskState": 3},
{"taskId":3, "taskState": 2},
{"taskId":4, "taskState": 3},
{"taskId":5, "taskState": 3}]
}];
function customSort(items, field ,value){
var filtered = [];
angular.forEach(items, function(item) {
item.tasks.sort(function(a, b){
return (a[value] < b[value] ? 1 : -1);
});
filtered.push(item);
});
var foo = {"taskState": 3};
filtered.sort(function (a, b) {
return ($filter('filter')(a["tasks"], foo, "strict").length < $filter('filter')(b["tasks"], foo, "strict").length ? 1 : -1);
});
return filtered;
}
$scope.candidates = customSort($scope.candidates, "taskState");
第二:但我仍然相信,在后端做这件事会更明智。
相关文章:
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- Javascript返回值只在循环中返回一次
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- Jquery FadeIn FadeOut 只工作一次
- 如何获取不属于我项目的上一页的URL
- Javascript html每点击一次就会更改url
- 键入最后一位数字后自动提交
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- fluxxor向一个flux实例添加一组以上的操作
- 如何在Facebook上的iframe应用程序中使后退按钮返回到上一页
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- AngularJs的命令在一片深深的田野旁
- 谷歌地图没有;不要出现.只是一片空白
- 如何知道所选节点是否是树中的一片叶子?(ExtJS 4)
- 图像切片,只保存(通过filesver .js)最后一片的顺序