当使用函数计算记录时,如何在angularjs中对表进行排序?我应该如何在contoller中拥有排序功能?
例如,我的两个记录是:
<td>{{object.lastName}}</td>
<td>{{getValue(objecct1, object2, 'string')}}</td>对于头部,我有这样的设置:
<th ng-click="order('string')">String<span ng-show="predicate === 'string'"
我可以基于lastName进行排序,因为它不是嵌套的,但是我不能基于来自getter函数的记录进行排序。
我认为我的问题是谓词,我认为它找不到相应的数据来对它们进行排序。
另外,在控制器中,我有以下几行:
$scope.predicate = 'lastName';
$scope.reverse = false;
$scope.order = function(predicate) {
$scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
$scope.predicate = predicate;
};有什么建议吗?
发布于 2015-11-24 17:28:24
我想知道您是否使用ng-repeat来显示您的嵌套数据?如果是,请尝试查看my answer here。我对你的问题的回答与此大致相同。
编辑:
试着看看我在这里链接的帖子中的答案,我将向你展示如何存储我的数据,并通过使用Service通过应用程序访问。
.service("DataProvider", function () {
var _data = [];
var obj = {
update: function () {
// Do an $http to update your data
},
getCachedData: function () {
return _data;
}
};
return obj;
});因此,通过注入您创建的名为DataProvider的服务,您可以在controller、directive或其他service中轻松获取应用程序中的数据
.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;
};
});https://stackoverflow.com/questions/33889557
复制相似问题