2017-05-23 2 views
-1

Ich benutze ionic2 (Angular2 & typescript) .Zuerst arbeite ich an einem passenden Algorithmus, wo eine Übereinstimmung gefunden wird, wird es das Ergebnis innerhalb eines Arrays, das auch innerhalb eines Objekts ist, schieben. Wenn ich jedoch zur vorherigen Seite zurückgehe und versuche, eine andere Übereinstimmung zu machen, werden Ergebnisse der vorherigen Übereinstimmung angezeigt. Daher möchte ich alle Ergebnisse innerhalb des Arrays/Objekts löschen können, bevor ich zum passenden Teil übergehe. bisher habe ich versucht ionwillEnter verwenden, und es gib mir nur ein leeres page.I versuchte es in den Konstruktor setzen und es nicht work.Below sind die CodesWie entferne ich alle Objekte in einem Array, wenn ich die Seite neu lade?

bevölkern das Objekt

constructor(public navCtrl: NavController, public navParams: NavParams,public testService: TestService,public cameraService: CameraService,public toastCtrl: ToastController,public auth : AuthProvider,af : AngularFire) { 

    this.objUser.length = 0; //trying to empty out all the elements/objects inside the array 

    var ref = firebase.database().ref('/user/'+ firebase.auth().currentUser.uid+'/profile/'); 
    ref.on('value', 
     ((data)=>{ 

     var users = data.val(); 
     var keys = Object.keys(users); 
     console.log(keys); 

     for(var y =0; y<keys.length; y++){ 
      var x = keys[y]; 

      this.objUser[y] = {userName:'', userAllergies:[], resultWarning:[], resultUnsafe:[]}; //dynamically create objects based on the y value 
      console.log(users[x].allergies); 

      this.objUser[y].userName = users[x].name; 
      this.objUser[y].userAllergies.push(users[x].allergies); 
      console.log('userAllergies',this.objUser[y].userAllergies); 
      console.log(this.objUser[y].userAllergies.length); 

     } 

     console.log(this.objUser); 
     console.log(this.objUser.length); 
     }), 
     this.errData); 
    } 

Daher ist es trotzdem, dass ich alle Elemente innerhalb des Arrays entfernen und alles neu initialisieren kann, lade ich die Seite? .Any Hilfe würde sehr geschätzt werden!

Antwort

0

'On' -Methode wird für jede Änderung im Firebase-Knoten ausgelöst (d. H. Bearbeiten/Hinzufügen/Entfernen). Versuchen Sie daher, die Array-Elemente innerhalb der 'on'-Methode zu löschen, aber nicht außerhalb davon.

Verwandte Themen