$scope.getAllEvents()
在最后10个事件中从Firebase数据库获取一个数组并将其放入$scope.events
数组中。然后该函数按日期排序$scope.events
。我正在初始化$scope.spliceTab
并致电$scope.spliceFunc()
。
$scope.counterPub()
是5的倍数时,HTML都会触发 $index
。该函数存储在$scope.spliceTab
$index
的每个值中触发。基本上它是一个选项卡,用于注册未来的新项目位置。然后我删除双打并将结果保存在$scope.result
。
最后,$scope.spliceFunc()
正在$scope.result
内阅读,并插入$scope.events
个位置存储到$scope.result
的新项目。
在我的应用开始时,$scope.events
已填满,但$scope.result
的{{1}}仍为空。当我使用无限滚动来加载10个以上的事件时,它正在工作,但$scope.spliceFunc()
算法在$scope.events.sort()
之前正在工作,因此我的新项目位于列表的底部而不是位置我想要。
我想以这种方式运行我的应用程序:
$scope.spliceFunc()
$scope.events
$scope.events
$scope.spliceTab
$scope.spliceFunc()
醇>
您怎么看?这可能吗?
$scope.events
// FUNCTION TO GET EVENTS
$scope.getAllEvents = function() {
if ($scope.listSiz === undefined) {
$scope.listSiz = 10;
}
var ref = firebase.database().ref().child("events");
$scope.events = $firebaseArray(ref.orderByChild('endDate').limitToFirst($scope.listSiz));
$scope.events.$loaded().then(function()
{
$scope.events.sort(function compareNumbers(y, x) {
var date1 = new Date(x.endDate);
var date2 = new Date(y.endDate);
return date1 - date2;
});
if ($scope.listSiz === 30) {
$scope.noMoreItemsAvailable = true;
}
$scope.spliceTab = [];
$scope.spliceFunc();
});
};
// FUNCTION TRIGGERED IN HTML
$scope.counterPub = function($index) {
var modulo = $index % 5;
if (modulo === 0) {
$scope.spliceTab.push($index);
// Delete doubles
$scope.result = [];
$scope.spliceTab.forEach(function(item) {
if ($scope.result.indexOf(item) < 0) {
$scope.result.push(item);
}
});
return true;
} else {
return false;
}
};
// FUNCTION SPLICE
$scope.spliceFunc = function() {
// console.log("************* TAB ****************** =", $scope.result);
angular.forEach($scope.result, function(value) {
$scope.events.splice(value, 0, [{
name: "toto"
}]);
});
};