AngularFireList टाइप करने के लिए असाइन नहीं है 'निरीक्षण योग्य




firebase firebase-database (2)

मेरे पास एक आयनिक पृष्ठ है जो आयन-सर्चबार पर गतिशील खोज करने के लिए FirebaseListObservable से पूछताछ कर रहा है। यह [email protected] और [email protected] के साथ अच्छी तरह से काम करता है। नई रिलीज कोने्यूलरफायर 5.0 अपग्रेड करने के बाद, मुझे फ़िरबेस लिस्ट के बारे में कोई समस्या मिलती है ओब्स्सेवेबल ने नए एपीआई से निर्यात नहीं किया है।

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

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

तब मैंने नई एपीआई के साथ क्वेरी बदल दी, लेकिन मैं नीचे देखकर आपको एक अवलोकन के रूप में प्रतिक्रिया नहीं लौटा सकता। मुझे इस तरह की त्रुटि मिल रही है

** संदेश: 'टाइप' ऑब्ज़्वेशेबल []> 'टाइप करने के लिए असाइन नहीं किया जा सकता है' ऑब्सबल ' टाइप 'AngularFireAction []' टाइप करने के लिए असाइन नहीं है 'प्रतिक्रिया' संपत्ति 'प्रकार' प्रकार 'AngularFireAction []' में गायब है। ' **

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


आपको .valueChanges() दिखाए गए अनुसार मूल्य .valueChanges() का उपयोग .valueChanges() । यहां एक डॉक्टर है

  groups: AngularFireList<any>;

  constructor(){}

getItems = (ev: any) : AngularFireList<any> {
  this.groups =  this.afDatabase.list('/Groups', {
       query:{
         orderByChild: 'namelower',
         startAt: (ev.target.value),
         endAt: (ev.target.value + '\uf8ff')
       }
      }
     ).valueChanges();

    return this.groups;
}

5.0 के बाद से AngularFireList से Observable<Response> प्राप्त करने के लिए, valueChanges() फ़ंक्शन का उपयोग करें।

यहां परिवर्तन की जांच करें

return this.afDatabase.list('/Groups', {
       query:{
         orderByChild: 'namelower',
         startAt: (ev.target.value),
         endAt: (ev.target.value + '\uf8ff')
       }
      }
     ).valueChanges();

यदि आप इस। के एक उदाहरण को सहेजना चाहते हैं, तो इस। this.groups , यह AngularFireList बजाय AngularFireList होगा।





angularfire2