zoukankan      html  css  js  c++  java
  • [AngularFire2] Pagination

    Let's see how to do pagination in Firebase:

    For the init loading, we only want 3 items:

      findLessonsKeyPreCourseUrl(courseUrl) {
        return this.findCourseByUrl(courseUrl)
          .filter(course => !!course)
          .map((course) => course.$key)
          .switchMap((courseKey) => this.db.list(`lessonsPerCourse/${courseKey}`, {
            query: {
              limitToFirst: 3,
              orderByKey: true
            }
          }));
      }

    'limitToFirst' --> If not given 'startAt', will start from index 0, and get three items.

    Next page: The idea is getting 4 items from the previous page's last item, after that we get rid of first item only keep the rest:

      findNextPageLessonsKey(courseUrl: string, from: Lesson, limit: number){
        return this.findCourseByUrl(courseUrl)
          .filter(c => !!c)
          .switchMap((c) => this.db.list(`lessonsPerCourse/${c.$key}`, {
            query: {
              limitToFirst: limit + 1,
              orderByKey: true,
              startAt: from.$key
            }
          }))
          .map(lessons => lessons.slice(1, lessons.length));
      }

    Previous Page: The same idea as next page, difference is this time we get 4 item from next page's first item, then get rid of the last item only keep the rest:

      findPreviousPageLessonsKey(courseUrl: string, end: Lesson, limit: number){
        return this.findCourseByUrl(courseUrl)
          .filter(c => !!c)
          .switchMap((c) => this.db.list(`lessonsPerCourse/${c.$key}`, {
            query: {
              limitToLast: limit + 1,
              orderByKey: true,
              endAt: end.$key
            }
          }))
          .map(lessons => lessons.slice(0, lessons.length-1));
      }
  • 相关阅读:
    vuesocket.io在单文件中使用(进入到单文件再发请求)
    el-tree设置默认展开及选中
    Vue项目中解决跨域问题
    echarts堆叠条形图计算总数()
    原生js实现点击目标区域外侧触发事件
    js构造树形菜单
    wangEditor服务器上传图片(Vue使用)
    webpack(6) 打包多页应用和sourcemap 使用
    NoSql相关
    Markdown
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5967362.html
Copyright © 2011-2022 走看看