加载重新加载页面时如何删除数组中的所有对象?
Posted
技术标签:
【中文标题】加载重新加载页面时如何删除数组中的所有对象?【英文标题】:How do i remove all objects inside an array when i load the reload the page? 【发布时间】:2017-10-23 07:02:47 【问题描述】:我正在使用 ionic2 (Angular2& typescript)。目前我正在研究一种匹配算法,如果找到匹配项,它会将结果推送到一个数组中,该数组也位于对象内部。但是,如果我返回上一页并尝试进行另一场比赛。它将显示上一场比赛的结果。因此,我希望能够在继续匹配部分之前清除数组/对象内的所有结果。到目前为止,我尝试使用 ionwillEnter ,它只是给了我一个空白页。我尝试将它放在构造函数中,但它不起作用。下面是代码
填充对象
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);
因此,无论如何我可以删除数组中的所有元素并重新初始化我加载页面的所有内容吗?任何帮助将不胜感激!
【问题讨论】:
【参考方案1】:'on' 方法会在 firebase 节点中的每次更改(即编辑/添加/删除)时触发。因此,请尝试清除 'on' 方法内部的数组元素,但不要清除它之外的元素。
【讨论】:
以上是关于加载重新加载页面时如何删除数组中的所有对象?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不重新加载页面的情况下以角度 2 设置或删除当前路线中的 queryParams