AngularFireList n'est pas cessible de type " Observables<Réponse>
J'ai un Ioniques page qui est de l'interrogation FirebaseListObservable dynamiques pour la recherche sur les ions barre de recherche. Il fonctionne bien avec [email protected] et [email protected].
Après la mise à jour nouvelle version AngularFire 5.0 je obtenir une question à propos de FirabaseListObservable n'a pas exporté de la nouvelle Api.
JS:
import { Component } from '@angular/core';
import { IonicPage, NavParams, ViewController } from 'ionic-angular';
import {AngularFireDatabase, FirebaseListObservable} from 'angularfire2/database';
import { Observable} from 'rxjs';
import { Response } from '@angular/http';
@IonicPage()
@Component({
selector: 'page-modal-groups',
templateUrl: 'modal-groups.html'
})
export class ModalGroupsPage {
groups: FirebaseListObservable<any>;
constructor(public navParams: NavParams,
public viewCtrl:ViewController,
public afDatabase: AngularFireDatabase) {
}
getItems = (ev: any) : Observable<Response> => {
this.groups = this.afDatabase.list('/Groups', {
query:{
orderByChild: 'namelower',
startAt: (ev.target.value),
endAt: (ev.target.value + '\uf8ff')
}
}
);
return this.groups;
}
chooseGroups(item:any){
this.viewCtrl.dismiss(item);
//console.log(this.product);
}
closeModal(){
this.viewCtrl.dismiss();
}
}
HTML:
<ion-header>
<ion-navbar>
<ion-title>Grup Seç</ion-title>
<ion-buttons end>
<button ion-button color="danger" (click)="closeModal()" >
Kapat
</button>
</ion-buttons>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-searchbar (ionInput)="getItems($event)"></ion-searchbar>
<ion-list>
<ion-item *ngFor="let item of groups | async" (click)="chooseGroups(item)">
{{ item.name }}
</ion-item>
</ion-list>
<!--<button ion-item *ngFor="let item of products | async" (click)="chooseProduct(item)">
{{item.name}}
</button>-->
</ion-content>
Puis j'ai changé la requête avec la nouvelle api, mais je ne peux pas retourner réponse comme un observable comme vous le voyez ci-dessous. Im obtenir d'erreur comme ceci
**message: 'Type 'Observable[]>" n'est pas cessible de type 'Observables'.
Type 'AngularFireAction[]' n'est pas assignable à type de Réponse.
La propriété "type" est manquant dans le " type de AngularFireAction[]'.'
**
JS:
import { Component } from '@angular/core';
import { IonicPage, NavParams, ViewController } from 'ionic-angular';
import {AngularFireDatabase, AngularFireAction} from 'angularfire2/database';
import { Observable, BehaviorSubject} from 'rxjs';
import { Response } from '@angular/http';
/**
* Generated class for the ModalGroupsPage page.
*
* See http://ionicframework.com/docs/components/#navigation for more info
* on Ionic pages and navigation.
*/
@IonicPage()
@Component({
selector: 'page-modal-groups',
templateUrl: 'modal-groups.html',
})
export class ModalGroupsPage {
items: Observable<AngularFireAction<firebase.database.DataSnapshot>[]>;
group: BehaviorSubject<any>;
constructor(public navParams: NavParams,
public viewCtrl:ViewController,
public afDatabase: AngularFireDatabase) {
}
getItems = (ev: any) : Observable<Response> => {
this.group = new BehaviorSubject(ev);
this.items = this.group.switchMap(name =>
this.afDatabase.list('/Groups', ref => name ? ref.orderByChild('namelower').startAt(ev.target.value).endAt(ev.target.value + '\uf8ff') : ref
).snapshotChanges());
return this.items;
}
Vous devez vous connecter pour publier un commentaire.
Afin d'obtenir
Observable<Response>
de AngularFireList de 5.0 partir,utilisation
valueChanges()
fonction.Vérifier le changement ici.
Si vous souhaitez enregistrer une instance de
this.afDatabase.list()
dansthis.groups
, il seraAngularFireList
au lieu deFirebaseListObservable
.Vous devez utiliser
.valueChanges()
comme indiqué ci-dessous.Voici la doc.1 min
retard 😀 @SurajRaothis.groups
si je ne me trompe pas..Angulaire 5.0 est refactoriser de AngularFireDatabase,il supprimer FirebaseListObservable et FirebaseObjectObservable
FirebaseListObservable ====> AngularFireList
FirebaseObjectObservable====>AngularFireObject
vous pouvez suivre lien
Dans Angularfire2 5.0 ou supérieur, si vous avez besoin d'observables liste avec une requête, vous devez utiliser AngularFireAction comme vous le voyez ci-dessous
JS:
J'ai installé les versions suivantes de angularfire2 et firebase: