AngularJS ng-repeat键,值对通过多个字段对组进行访问

时间:2015-11-24 07:49:02

标签: angularjs group-by multiple-columns ng-repeat

我是Angular的新手,想学习处理问题的最佳方法。 我想在我的第一个ng-repeat中按多个列分组访问密钥。

borderImage

我的JSON数据如下:

$image = new Imagick();
$image->readImage('tux.png');

$image->borderImage(new ImagickPixel('red'), 5, 5); // no outline

我希望按多列列出数据组,即“课程”,“模块”,“主题”,“toc”,“章节”

提前致谢:)

1 个答案:

答案 0 :(得分:0)

最有效的排序方法我通常会将您的列放在数组中,并在数据中添加指定键

$scope.cols = [
    {
        "name": "Course",
        "key": "course"
    },
    {
        "name": "Module",
        "key": "module"
    },
    {
        "name": "Subject"
        "key": "subject"
    },
    {
        "name": "Toc",
        "key": "toc"
    },
    {
        "name": "Chapter",
        "key": "chapter"
    },
    {
        "name": "Activity Done",
        "key": ""
    },
    {
        "name": "Start",
        "key": "start"
    },
    {
        "name": "End",
        "key": "end"
    },
    {
        "name": "Time Spent",
        "key": "timespent"
    }
];

然后在模板中循环并添加ng-click

<tr ng-repeat="col in cols" ng-click="onHeadingClicked(col)">
    {{col.name}}
</tr>

然后创建用于对数据进行排序的onHeadingClicked()函数。

$scope.onHeadingClicked = function (col) {
    var sorted = [];
    angular.forEach(sessions, function (col) {
        // Sorting algorithm here
    });

    $scope.sessions = sorted;
};

由于性能原因,我不使用过滤器,每次都会运行过滤器,因此执行该功能很多次,所以将它放在那里并不是一个好主意。只有在完成简单的显示操作时才使用过滤器。

希望这有帮助