2017-05-23 1 views
-1

私はionic2(Angular2 & typecript)を使用しています。現在、マッチングが見つかったマッチングアルゴリズムに取り組んでいます。オブジェクト内にある配列内に結果をプッシュします。しかし、前のページに戻って別のmatch.Itを実行しようとすると、前のmatch.Henceの結果が表示されます。一致する部分に進む前に配列/オブジェクト内のすべての結果をクリアしたいと思うでしょう。これまでのところ私はionwillEnterを使用してみました、そして、それはちょうど空白page.Iは、コンストラクタ内でそれを入れてみました、私に与えて、それがページの読み込みをロードする際に、配列内のすべてのオブジェクトを削除するにはどうすればよいですか?

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

はそのためであるオブジェクトが移入コード

work.Belowあるしませんとにかく、配列内のすべての要素を削除して、ページをロードするすべての初期化を行うことができますか?

答えて

0

firebaseノードの変更(編集/追加/削除)が行われるたびに 'on'メソッドがトリガされます。したがって、 'on'メソッドの内側の配列要素をクリアしてください。ただし、その外側にはありません。

関連する問題