Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 日期列未在ng表中排序_Javascript_Angularjs_Sorting_Ngtable - Fatal编程技术网

Javascript 日期列未在ng表中排序

Javascript 日期列未在ng表中排序,javascript,angularjs,sorting,ngtable,Javascript,Angularjs,Sorting,Ngtable,我已经用ng表格创建了一个应用程序,该应用程序运行良好,除了日期列外,排序工作正常,有人能告诉我一些解决方案吗。我的代码如下所示 html <table ng-table="tableParams" class="table"> <tr ng-repeat="user in myValues"> <td data-title="'Name'" sortable="'name'"> {{user.name}}

我已经用ng表格创建了一个应用程序,该应用程序运行良好,除了日期列外,排序工作正常,有人能告诉我一些解决方案吗。我的代码如下所示

html

<table ng-table="tableParams" class="table">
    <tr ng-repeat="user in myValues">
        <td data-title="'Name'" sortable="'name'">
            {{user.name}}
        </td>
        <td data-title="'Age'" sortable="'age'">
            {{user.age}}
        </td>
        <td data-title="'Last Update Date'" sortable="'lastUpdateDate'">
            {{user.lastUpdateDate}}
        </td>
    </tr>
</table>

它是有效的,但显然不是以您期望的方式工作的:代码中没有说明字段是日期,因此,
lastUpdateDate
被作为公共字符串处理,所以顺序是按字母顺序排列的。

那么我该怎么做才能像Date一样排序呢?如果你将
lastUpdateDate
存储为JavaScript日期对象而不是字符串,那么我会怎么做呢?我发现了一个非常类似的问题,答案很好,所以我将这个问题标记为重复问题,但带有字符串日期的json来自远程服务器,所以在下载json后,但在将其传递给ngTable之前,请修复json。@Pablo这与ng tableNo有关,他是对的-这就是问题的全部。-将字符串存储为日期对象并格式化以供显示。@AleMan我刚刚在Blazemonger的编辑中添加了一个过滤器,请检查我们如何将其更改为日期对象……因为带有日期字符串的json是从外部应用程序提交的,不像plunker中所示的那样是静态的
var app = angular.module('main', ['ngTable']).
controller('DemoCtrl', function($scope, $filter, ngTableParams) {
    $scope.myValues = [{name: "Moroni", age: 50, lastUpdateDate:"03/14/2014 06:21"},
                {name: "Tiancum", age: 43, lastUpdateDate:"07/24/2014 06:41"},
                {name: "Jacob", age: 27, lastUpdateDate:"09/10/2001 04:46"},
                {name: "Nephi", age: 29, lastUpdateDate:"03/30/2013 03:31"},
                {name: "Enos", age: 34, lastUpdateDate:"02/20/2004 09:11"},
                {name: "Tiancum", age: 43, lastUpdateDate:"07/12/2012 05:24"},
                {name: "Jacob", age: 27, lastUpdateDate:"01/24/2013 01:11"},
                {name: "Nephi", age: 29, lastUpdateDate:"05/02/2014 02:21"},
                {name: "Enos", age: 34, lastUpdateDate:"01/21/2001 03:31"},
                {name: "Tiancum", age: 43, lastUpdateDate:"02/14/2002 04:21"},
                {name: "Jacob", age: 27, lastUpdateDate:"03/22/2022 05:01"},
                {name: "Nephi", age: 29, lastUpdateDate:"04/14/2020 06:11"},
                {name: "Enos", age: 34, lastUpdateDate:"05/03/2002 07:03"}, 
                {name: "Tiancum", age: 43, lastUpdateDate:"06/09/2000 08:01"},
                {name: "Jacob", age: 27, lastUpdateDate:"07/10/2001 09:02"},
                {name: "Nephi", age: 29, lastUpdateDate:"08/27/2012 10:10"},
                {name: "Enos", age: 34, lastUpdateDate:"09/12/2014 06:12"}];

    $scope.tableParams = new ngTableParams({
        sorting: {
            lastUpdateDate: 'desc'     
        }
    }, {
        getData: function($defer, params) {
           $scope.myValues = $filter('orderBy')($scope.myValues, params.orderBy());
          $defer.resolve($scope.myValues);
        }
    });
});