2017-08-14 92 views
0

我使用的是什么角和火力地堡 - 这可能在解析器使用查询?

  • 火力地堡

我试图实现日期的顺序

  • 显示项目(一键在firebase“project_date”。看到下面的节点标题截图)enter image description here

问题

  • 我目前使用的解析器返回我的项目
  • 是否有可能合并查询/排序到我的解析器?

我的项目清单解析器

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; 
 
     }); 
 
    }

任何帮助将不胜感激!

回答

0

我这样做,我的申请。首先,当你从火力地堡中的数据,它是JSON所以你必须将其更改为阵,那么你必须根据日期排序的数组。这是排序功能:

arr.sort((a: any [], b: any []) => { 

     return (new Date (a[0]) .getTime() - new Date (b[0]).getTime()) ; 
     }); 

如果你想完整的代码,我可以将它张贴。

+0

嘿Zahmed。感谢您提供如此快速的回应。如果你不介意的话,那会很棒。我非常新的这个,所以这是一个有点一步的学习曲线,它是如何将我的代码集成以上将是非常美妙谢谢。我刚刚更新了我的文章,以包含来自我的项目组件文件的代码,如果这增加了整体工作方式。 – MegaTron

+0

看时间考勤类,有一个叫函数:)AttendanceTime(.... 这是链接:https://github.com/AhmadZeid10/HRSystem/tree/master/src/app/manger – ZAhmed

+0

谢谢@ZAhmed。感谢您发布代码。不幸的是,这对我来说有点先进。 (我一个月前才开始学习这个东西..) – MegaTron