0

我不确定如何处理这个问题。

我正在从服务器接收 JSON {createdOnT: "Sun Aug 04 10:27:39 IDT 2013"}。现在我想将 JSON 的值转换为 javscript Date 对象。所以在我的控制器中,我有一个看起来像这样的功能

$scope.getdate = function(date) {   
  var unformatedDate = date;
  var formated=unformatedDate.replace("IDT","");
  var angformat=new Date(formated);
  $rootScope.date = angformat;
  return $rootScope.date;
} 

在我看来,我这样调用函数

<span ng-class="getdate(val.createdOnT)">
  <b>Date: &nbsp</b>{{date| date:'medium'}}
</span>

最后尝试像这样订购

<li ng-repeat="(key, val) in JSON | orderBy:'-date'">

最后,我想将转换后的值发送到 DOM 并使用 angular 的 orderBy 过滤器以降序排列结果。我的猜测是我的流程有问题,因为我试图在 getdate 函数转换日期之前使用 orderBy 过滤器......

提前谢谢,吉登

4

2 回答 2

0

你尝试的东西对我来说看起来不太正确。

您正在将 getdate 的结果传递给 ng-class 指令——这一切将完成的是将带有函数结果的 css 类应用于跨度。如果您在 chrome 之类的内容中检查生成的 html,您会看到这种情况。

相反,您应该做的是在您的控制器中,遍历返回的数据并将函数应用于正确的字段并将结果存储回其中,或者

将函数直接应用于过滤器,因此它是 orderby: 'getdate(val.createdOnT)'

最后一个选项可能是您想要做的。看

http://docs.angularjs.org/api/ng.filter:orderBy

于 2013-08-06T11:35:02.277 回答
0

所以,我发现我从服务器接收到的 JSON 是一个对象,而不是一个数组。这就是 orderBy 函数不起作用的原因,也是视图中的数据以无序方式呈现的原因。

于 2013-08-15T12:22:48.847 回答