AngularFire添加以相反的顺序 [英] AngularFire add in reverse order

查看:178
本文介绍了AngularFire添加以相反的顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要的对象以相反的顺序添加到火力地堡。或者去数据绑定反向数据。或者通过创建时间排序的对象。

I need to add objects to Firebase in reverse order. Or reverse data when goes data binding. Or sort objects by time of create.

var ref = new Firebase("https://[url].firebaseio.com/");
$scope.messages = $firebase(ref);

$scope.addMessage = function(e) {
    $scope.messages.$add({title: $scope.title, body: $scope.msg, time: $scope.getDate() });
}

<div class="well span3 pull-left note" ng-repeat="(key, msg) in messages">

    <button type='button' class='close' ng-click="messages.$remove(key)">×</button>
    <b>{{msg.time| date: 'medium'}}</b>
    <span>{{msg.title}}</span>
    <span>{{msg.body}}</span>
    <button ng-click="changeMessage(key)" class="btn btn-mini pull-right"><i class="icon-pencil"></i></button>      
</div>  

我尝试使用排序依据属性附加伤害为NG-重复,但这并不容易,因为在消息存储对象。

I try to use OrderBy atribute for ng-repeat but this is not easy because in messages are stored objects.

推荐答案

检查出的聊天例子angularFire种子。它采用了定制逆滤波器

反向过滤器看起来像这样:

The reverse filter looks like so:

app.filter('reverse', function() {
      function toArray(list) {
         var k, out = [];
         if( list ) {
            if( angular.isArray(list) ) {
               out = list;
            }
            else if( typeof(list) === 'object' ) {
               for (k in list) {
                  if (list.hasOwnProperty(k)) { out.push(list[k]); }
               }
            }
         }
         return out;
      }
      return function(items) {
         return toArray(items).slice().reverse();
      };
   });

和用法是像这样:

<ul id="messages" ng-show="messages">
    <li ng-repeat="message in messages | reverse">{{message.text}}</li>
</ul>

这篇关于AngularFire添加以相反的顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆