首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular JS排序具有复杂记录的行

Angular JS排序具有复杂记录的行
EN

Stack Overflow用户
提问于 2015-11-24 17:13:34
回答 1查看 76关注 0票数 0

当使用函数计算记录时,如何在angularjs中对表进行排序?我应该如何在contoller中拥有排序功能?

例如,我的两个记录是:

代码语言:javascript
复制
<td>{{object.lastName}}</td>
<td>{{getValue(objecct1, object2, 'string')}}</td>

对于头部,我有这样的设置:

<th ng-click="order('string')">String<span ng-show="predicate === 'string'"

我可以基于lastName进行排序,因为它不是嵌套的,但是我不能基于来自getter函数的记录进行排序。

我认为我的问题是谓词,我认为它找不到相应的数据来对它们进行排序。

另外,在控制器中,我有以下几行:

代码语言:javascript
复制
$scope.predicate = 'lastName';
$scope.reverse = false;

$scope.order = function(predicate) {
    $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
    $scope.predicate = predicate;
};

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-24 17:28:24

我想知道您是否使用ng-repeat来显示您的嵌套数据?如果是,请尝试查看my answer here。我对你的问题的回答与此大致相同。

编辑:

试着看看我在这里链接的帖子中的答案,我将向你展示如何存储我的数据,并通过使用Service通过应用程序访问。

代码语言:javascript
复制
.service("DataProvider", function () {
    var _data = [];
    var obj = {
        update: function () {
            // Do an $http to update your data
        },
        getCachedData: function () {
            return _data;
        }
    };

    return obj;
});

因此,通过注入您创建的名为DataProvider的服务,您可以在controllerdirective或其他service中轻松获取应用程序中的数据

代码语言:javascript
复制
.controller("YourControllerName", function ($scope, DataProvider) {
    // Here I will call getCached data every time this controller is called
    $scope.myData = DataProvider.getCachedData();

    // And your sorting function would pretty much be in here
    $scope.order = function () {
        // Do an sorting algo here
        var sorted = [];
        angular.forEach(sorted, function () {
            // Do your fancy sorting algo
        });

        $scope.myData = sorted;
    };
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33889557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档