我从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>
提前感谢您的帮助。
答案 0 :(得分:6)
当你在angularfire中使用隐式数据绑定时,它会返回一个无法在angularBy中使用的对象。您可以使用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>
答案 1 :(得分:0)
您可以使用JavaScript的splice()
函数插入数组的开头
$scope.lineas.splice(0, 0, {texto: $scope.linea});