1

我从 AngularJS 和 Firebase 开始。我正在寻找在顶部的列表(托管在 Firebase 中)中插入新项目或在顶部打印列表的最后一项的方法。来自 Angular 的过滤器“orderBy”对我不起作用,因为它是一个列表。

我插入项目的实际代码:

var ref = new Firebase("https://[here is my instance].firebaseio.com/");
$scope.lineas = [];
angularFire(ref, $scope, "lineas");
$scope.agregarLinea = function() {
   $scope.lineas.push({texto: $scope.linea});
   $scope.linea = "";
};

并列出项目:

<ul class='lineas'>
    <li ng-repeat="linea in lineas">
        <span>{{linea.texto}}</span>
    </li>
</ul>

预先感谢您的帮助。

4

2 回答 2

6

当您在 angularfire 中使用隐式数据绑定时,它会返回一个无法在 angular 中的 orderBy 中使用的对象。您可以改用 angularFireCollection。

var ref = new Firebase("https://[here is my instance].firebaseio.com/");
$scope.lineas = [];
$scope.lineas = angularFireCollection(ref);
$scope.agregarLinea = function() {
   $scope.lineas.add({texto: $scope.linea});
   $scope.linea = "";
};

firebase 生成的 id 是基于日期的,因此可用于排序:

<ul class='lineas'>
    <li ng-repeat="linea in lineas | orderBy:'-$id'">
        <span>{{linea.$id}} - {{linea.texto}}</span>
    </li>
</ul>
于 2013-10-01T12:58:42.367 回答
0

您可以使用 JavaScript 的splice()函数在数组的开头插入

$scope.lineas.splice(0, 0, {texto: $scope.linea});
于 2013-09-30T23:17:06.110 回答