Javascript Firebase AngularJS ng重复订购人。。怎样?
在这一点上我有点迷茫,在网上寻找答案,但我仍然在做错事。。 脚本: 我有一个firebase obj,从那里我可以通过ng repeat获得要重复的项目,循环工作得很好,但是我不知道如何通过子元素的值对这些元素进行排序,基本上现在是这样的: app.jsJavascript Firebase AngularJS ng重复订购人。。怎样?,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,在这一点上我有点迷茫,在网上寻找答案,但我仍然在做错事。。 脚本: 我有一个firebase obj,从那里我可以通过ng repeat获得要重复的项目,循环工作得很好,但是我不知道如何通过子元素的值对这些元素进行排序,基本上现在是这样的: app.js .controller('MessageController', function ($scope, $firebase) { var ref = new Firebase("https://01062016ag.fi
.controller('MessageController', function ($scope, $firebase) {
var ref = new Firebase("https://01062016ag.firebaseio.com/messages/yourmessages/02");
var fb = $firebase(ref);
// sync as object
var syncObject = fb.$asObject();
var time = Firebase.ServerValue.TIMESTAMP ? Firebase.ServerValue.TIMESTAMP : 1459007018632;
this.newMessage = { approved:false, time:Firebase.ServerValue.TIMESTAMP };
this.addMessage = function($event) {
$event.preventDefault();
ref.push(this.newMessage);
this.newMessage = {};
};
console.log(syncObject, ref, fb);
// three way data binding
syncObject.$bindTo( $scope, 'messages' );
})
html
{{msgCtrl.newMessage.text?msgCtrl.newMessage.text:'留言'}
{{msgCtrl.newMessage.author?msgCtrl.newMessage.author:'author'}
{{slide.text | limito:100}{{slide.text.length>100?'…':''}
{{slide.author}}
我尝试对ng repeat应用过滤器,如某些线程中所述,类似于ng repeat=“滑入消息| orderByPriority | orderBy:'time':reverse”或ng repeat=“滑入消息| toArray | orderBy:'time':reverse”
但是没有运气。。我得到未知提供程序的错误
我很确定我的控制器出了点问题
抱歉,如果它看起来有点呆滞,但我对angular很新:)
感谢您的帮助您使用的Firebase和AngularFire版本是什么?一种方法是,另一种方法是。后者是首选,因为它在服务器上执行排序和筛选。Frank van Puffelen yep是第二个首选,orderByPriority是应该做这项工作的。。但我不知道如何在控制器中设置过滤器,我不知道。。您的代码还没有使用查询,这样做不会导致在控制器中需要过滤器。西南对我所联系的第二个问题的回答说明了如何使它起作用。从他的例子开始(或者是使用
orderByChild()
的众多例子中的一个),然后从那里开始工作。不要从一个坏掉的应用程序开始,试着让它工作起来,从文档开始,首先理解它。谢谢你的建议Frank:)这就是我要做的,但我仍然错过了一些步骤,只是从零开始,按照文档,我得到orderByChild()作为一个未定义的函数,带有以下语句var ref=new Firebase(“;ref.orderByChild(”在(“child_added”,函数(snapshot){console.log(snapshot.key()+“was”+snapshot.val().height+“meters-thill”);})上),这应该是现成的,还是我必须以某种方式定义这个函数(这是查询部分的开始…)您使用的是什么版本的Firebase和AngularFire?一种方法是to,另一种方法是to。后者是首选的,因为它在服务器上执行排序和筛选。Frank van Puffelen yep是第二种首选,orderByPriority是应该做这项工作的。但是我不知道如何在控制器和I g中设置筛选器et unknown..任何建议或建议都值得欣赏您的代码还没有使用查询,这样做不会导致控制器中需要过滤器。Sinan对我链接的第二个问题的回答说明了如何使其工作。从他的示例开始(或使用orderByChild()
的众多示例之一)然后从那里开始工作。不要从一个坏掉的应用程序开始,试着让它工作起来,从文档开始,首先理解它。谢谢你的建议弗兰克:)这就是我想做的,但我仍然错过了一些步骤,只是从零开始,然后按照文档,我得到orderByChild()作为一个未定义的函数,带有以下语句var ref=new Firebase(“); ref.orderByChild(“height”).on(“添加了child_”,函数(snapshot){console.log(snapshot.key()+”是“+snapshot.val().height+”米高”);});这应该是开箱即用的,或者我必须以某种方式定义这个函数(这是查询部分的最开始…)
<carousel interval="myInterval">
<div id="preview">
<blockquote ng-class="{ 'preview' : !msgCtrl.newMessage.text }" class="active">
{{ msgCtrl.newMessage.text ? msgCtrl.newMessage.text : 'leave a message' }}
</blockquote>
<cite ng-class="{ 'preview' : !msgCtrl.newMessage.author }" class="">
{{ msgCtrl.newMessage.author ? msgCtrl.newMessage.author : 'Author' }}
</cite>
</div>
<slide ng-repeat="slide in messages | orderBy: 'time' : reverse " active="slide.active">
<blockquote>
{{ slide.text | limitTo: 100 }}{{slide.text.length > 100 ? ' ...' : ''}}
</blockquote>
<cite>
{{ slide.author }}
</cite>
</slide>
</carousel>