角度/离子 RXJS 更新可观察数组而不是追加



这是一个离子应用程序的功能,可以显示您附近的所有用户..问题是如果用户更改其名称或位置,则会将其作为新项目添加到数组中,而不是更新现有项目...我怎么可能将更新提供给ionic2 ngFor 循环?

public outputUsersCloseToMe() : Observable<Array<displayAllUsers>> {
    let availableUsers = <Array<displayAllUsers>>[];
        this.firebaseInit().database().ref('users').child(key).child('profile').on('value', (userprofile) => {  
            if( userprofile.val() ) {
                availableUsers.push({ 
                    id: userprofile.val().id,                        
                    gender: userprofile.val().gender,
                    distance: distance.toFixed(2),
                    location: location,
                    firstName: userprofile.val().firstName,                        
                });        
            }
        }); 
    return Observable.from([availableUsers]).map(val => val); 
}

您可以使用映射而不是数组。

let availableUsers = <Map<String,displayAllUsers>> new Map;

您按 id 更新它

availableUsers.set(id, { 
  id: userprofile.val().id,                        
  gender: userprofile.val().gender,
  distance: distance.toFixed(2),
  location: location,
  firstName: userprofile.val().firstName,                        
});

仅使用地图中存储的values创建可观测量

return Observable.from([availableUsers.values()]); 

相关内容

  • 没有找到相关文章

最新更新