2017-08-14 10 views
0

Angular&Firebase - リゾルバでクエリを使用することは可能ですか?私が使用している何

  • 角度
  • Firebase
  • 私は(キーを日付順に

    • 表示項目を達成しようとしている何

    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

私は自分のアプリケーションでそれを行います。まず、Firebaseからデータを取得するときはjsonですから、配列に変更する必要があります。その後、日付に応じて配列をソートする必要があります。これはソート関数です。

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

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

完全なコードが必要な場合は、投稿できます。

+0

Hey Zahmed。このような迅速な対応をありがとうございます。あなたが気にしないなら、それは素晴らしいでしょう。私は例外的にこれに新しいので、それは少し曲線の学習曲線です、どのように私のコードと上記の統合するだろう素晴らしいあなたに感謝します。私はちょうどこれが全体的にどのように機能するかを追加すれば、自分の投稿を更新して自分のプロジェクトのコンポーネントファイルからコードを追加しました。 – MegaTron

+0

時間授業のクラスを見ると、AttendanceTime().... これはリンクです:https://github.com/AhmadZeid10/HRSystem/tree/master/src/app/manger – ZAhmed

+0

ありがとう@ ZAhmed。コードを投稿していただきありがとうございます。残念ながら、これは私のために少し進んでいます。 (私はこの1ヶ月前にこの勉強を始めただけです..) – MegaTron

関連する問題