Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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
按最新输入加载json-Angularjs_Angularjs_Json - Fatal编程技术网

按最新输入加载json-Angularjs

按最新输入加载json-Angularjs,angularjs,json,Angularjs,Json,我正在构建一个应用程序,用户可以在他的个人资料上看到他的最新帖子,目前我正在加载JSON,从上到下浏览列表 是否有一种简单的方法来切换,换句话说,加载最新的输入,这样它可以显示“最近的活动” 这是我获取当前数据的代码: $http.get('URL') .then(function(result) { angular.forEach(result.data, function(data, key) { if(data.use

我正在构建一个应用程序,用户可以在他的个人资料上看到他的最新帖子,目前我正在加载JSON,从上到下浏览列表

是否有一种简单的方法来切换,换句话说,加载最新的输入,这样它可以显示“最近的活动”

这是我获取当前数据的代码:

$http.get('URL')
        .then(function(result) {
            angular.forEach(result.data, function(data, key) {
                if(data.userId === authenticated.profile.user_id) {
                    $scope.posts.push(data);
            } 
        });
    });

返回的JSON中是否有时间戳?要按“最近”排序,您需要提供某种方式在报税表中表示这一点。

这取决于您在视图中如何使用数据数组,您可以使用angularJs中的过滤器根据时间戳或您的要求显示最近的数据

您可以使用
unshift
从数组开始添加数据,而不是使用
push
方法。因此,新数据将位于数组中的第一个数据项,如下所示

 angular.forEach(result.data, function(data, key) {
                if(data.userId === authenticated.profile.user_id) {
                    $scope.posts.unshift(data);
            } 
如果您的数据有时间戳,您可以使用下面的过滤器根据时间戳对数据进行排序

模板

<div ng-repeat="post in posts | orderBy :'created_at':true "></div>


参考:

Yes json返回一个“created_at”:对象{u id:“5740bc9d32117c418db8c28”,created_:“2016-05-21T19:53:01.102Z”,userId:“118000609287736585411”,post_title:“Testing data”…}这很有效!您建议我这样做还是使用时间戳?@Pexilius作为来自服务器的数据,信任该数据是安全的:)因此,您可以使用在您的案例中创建的数据中的属性,并使用orderBy筛选器进行排序。我已经用同样的方法更新了答案。好吧,太好了,我应该保留取消移位还是将其恢复到“$scope.posts.push(data)”?我两个都做了,结果都一样。我猜过滤器会覆盖$scope集成方法。如果我让它不移动,我不会成为问题的,对吗?@Pexilius我建议您使用带有created_at属性的过滤器,因为来自backed和angularJs orderBy过滤器的数据将根据created at time进行排序,或者如果您不想使用过滤器,您可以使用JavaScript映射方法根据数组中的created_at属性修改posts数组,并且按你自己的分类