我目前正在使用Firebase和AngularJS为自己构建一个小型个人博客。
现在,我不想在同一页面上显示我的所有帖子。如果我每天都开始发帖,它很快就会变慢。我的目标是拥有一个' prev'和下一个'每个博客帖子底部的按钮供用户浏览。
目前我这样做,html:
<main class="content links-dark" data-ng-controller="postsCtrl">
<article ng-repeat="(id, post) in posts track by post.$id | orderByPriority | orderBy:'-$id' ">
<footer>
<small>{{post.time}}</small> - Less than 1 minute read
</footer>
<header class="headline">
<h1>{{post.title}}</h1>
</header>
<section>
<p ng-bind-html="post.body">
</p>
</section>
</article>
<nav class="articles links-dark">
<a href="#">next post</a>
</nav>
</main>
我的js文件:
var blogApp = angular.module('blogApp', ['firebase', 'ngSanitize']);
blogApp.controller('postsCtrl', ['$scope', '$firebase', function($scope, $firebase){
var ref = new Firebase('https://teemublog.firebaseio.com/posts/');
var count = 0, pageSize = 1;
$scope.posts = $firebase(ref);
$scope.nextPage = function loadNextPage() {
var oldPosts = $scope.posts;
count += pageSize;
$scope.posts = ref.startAt().limit(count);
if (oldPosts) {
oldPosts.$off();
}
}
$scope.nextPage();
}]);
我从其他帖子中抓住了这个想法。我还没有尝试将nextPage放在锚中,因为这根本不起作用。调试器说:
错误:[ngRepeat:dupes]不允许在转发器中重复。使用 &#39;跟踪&#39;表达式以指定唯一键。中继器:(id,post)in 帖子跟踪帖子。$ id | orderByPriority | orderBy:&#39; - $ id&#39;,复制 关键:[]
我已经尝试过摆弄ng-repeat(删除过滤器等),但没有成功。
我的问题: 这是处理Firebase,AngularJS和AngularFire时处理可能的分页的最佳方式吗?有更简单的方法吗?
非常感谢, Tetsii