【问题标题】:Angular & Firebase - is it possible to use a query in a resolver?Angular 和 Firebase - 是否可以在解析器中使用查询?
【发布时间】:2017-08-14 21:02:28
【问题描述】:

我正在使用什么

  • 角度
  • Firebase

我正在努力实现的目标

  • 按日期顺序显示项目(firebase“project_date”中的一个键。见下面的节点标题截图)

问题

  • 我目前正在使用解析器退回我的物品
  • 是否可以将查询/排序合并到我的解析器中?

我的项目列表解析器

import { Injectable } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
import { AuthService } from '../../user/auth.service';
import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import 'rxjs/add/operator/first';
import { Observable } from 'rxjs/Observable';

@Injectable()

export class ProjectsListResolver {

  constructor(private database: AngularFireDatabase, private authService: AuthService) { }

 
  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {

    return Observable.create(observer => {

      this.authService.user
        .first()
        .subscribe(user => {
          this.database.list(`/project_list/${user.uid}`)
            .first()
            .subscribe(projectList => {
              observer.next(projectList);
              observer.complete();
            });
        });
    });
  }

}

项目组件 TS

ngOnInit() {

    // Returns the data from the projects list resolver
    this.activatedRoute.data
      .subscribe((
        data: { projectListData: any }) => {
        this.projectsList = data.projectListData;
      });
  }

任何帮助将不胜感激!

【问题讨论】:

    标签: angular firebase firebase-realtime-database angularfire


    【解决方案1】:

    我的应用程序就是这样做的。首先,当您从 Firebase 获取数据时,它是 json ,因此您必须将其更改为 array ,然后您必须根据日期对数组进行排序。这是排序函数:

     arr.sort((a: any [], b: any []) => {
    
            return (new Date (a[0]) .getTime() - new Date (b[0]).getTime()) ;
          });
    

    如果你想要完整的代码,我可以发布它。

    【讨论】:

    • 嘿扎哈迈德。谢谢你这么快的回复。如果你不介意,那就太好了。我对此非常陌生,所以这是一个逐步学习曲线,它如何与我上面的代码集成将非常棒,谢谢。我刚刚更新了我的帖子以包含我的项目组件文件中的代码,如果这增加了整体的工作方式。
    • 看考勤类,有一个函数叫:AttendanceTime()....这是链接:github.com/AhmadZeid10/HRSystem/tree/master/src/app/manger
    • 谢谢@ZAhmed。感谢您发布代码。不幸的是,这对我来说有点先进。 (我一个月前才开始学习这些东西..)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    相关资源
    最近更新 更多