我不知道如何处理这个问题。
我正在接收来自服务器{createdOnT: "Sun Aug 04 10:27:39 IDT 2013"}
的JSON。现在,我想将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:  </b>{{date| date:'medium'}}
</span>
最后试着像这个一样订购
<li ng-repeat="(key, val) in JSON | orderBy:'-date'">
最后,我想将转换后的值发送到DOM,并使用angular的orderBy过滤器按降序排列结果。我的猜测是我的流出了问题,因为我试图在getdate函数转换日期之前使用orderBy筛选器。。。
谢谢你,Gidon
你的尝试在我看来不太正确。
您正在将getdate的结果传递到ng类指令中——所要完成的就是将带有函数结果的css类应用到span。如果你在chrome之类的东西中检查结果html,你会看到这种情况。
相反,你应该做的是在你的控制器中,循环浏览你返回的数据,并将函数应用于正确的字段,并将结果存储回其中,或者
直接在筛选器上应用该函数,使其按顺序排列:"getdate(val.createdOnT)"
最后一个选项可能是你想做的。参见
http://docs.angularjs.org/api/ng.filter:orderBy
因此,我发现从服务器接收的JSON是Object,而不是Array。这就是orderBy函数不起作用的原因,也是视图中的数据以无序方式显示的原因。