私が試しWHAT(正しく動作しません):はファイヤーベースの降順で、私の無限のスクロールで最初に私のトップの投稿を表示するには?
CODE:
<script>
var app = angular.module('app', ['firebase']);
app.controller('ctrl', function ($scope, $firebaseArray, $timeout) {
$scope.data = [];
var _n = Math.ceil(($(window).height() - 50)/(350)) + 1;
var start = 0;
var end = _n - 1;
var lastScore = <%=lastScore%>;
console.log("FIRST FIRST FIRST LAST SCORE:" + lastScore);
var firstElementsLoaded = false;
$scope.getDataset = function() {
fb.orderByChild('score').endAt(lastScore).limitToLast(_n).on("child_added", function(dataSnapshot) {
lastScore = dataSnapshot.child("score").val() - 1;
console.log("LAST TOP LIKED:"+ lastScore);
$scope.data.push(dataSnapshot.val());
$scope.$apply();
console.log("THE VALUE:"+$scope.data);
$scope.data.splice(start, end).concat($scope.data.reverse());
$scope.$apply();
start = start + _n;
end = end + _n
firstElementsLoaded = true;
});
};
$scope.getDataset();
window.addEventListener('scroll', function() {
if (firstElementsLoaded == true) {
if (window.scrollY === document.body.scrollHeight - window.innerHeight) {
$scope.$apply($scope.getDataset());
}
}
});
});
// Compile the whole <body> with the angular module named "app"
angular.bootstrap(document.body, ['app']);
が
QUESTION:
はどうやってデータを元に戻しますかクライアント側自分のスコアを(上から下へ)上から下へ投稿するには?
私は達成するためにたいと思うパートナーはどのような:
は無限スクロールと少しトリッキーですスコアに従って降順に私の記事を取得します。
は、あなただけのコンパレータ機能でのArray.sortを使用することができませんでしたか?これが何らかのフレームワークAPIのものなら、それを指摘しないと、$ scopeは角度のように見えますが、ここではわかりません。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort –
@TimConsolazioリンクを見て、sort()はUnicodeのコードポイントを使用しています:私は見ませんどのように私のケースに適用することができます:(おかげで提案!でも^^ – Coder1000
待ってください、コンパレータ関数は、並べ替えの種類を行うために使用することができますストレートArray.sortは、私は(おそらく他の100人のJS開発者のうち90人がこれを使って、あらゆる種類のものに対して非常に強力な効果を得ています。オブジェクトを並べ替える(他の配列との比較など)、オブジェクト自体に含まれていない他の要素でソートすることもできます。 –