我在下面有一个对象方法,它接受另一个对象'后端'的参数。它使用后端对象中的方法&f; fetchClassrooms $()'返回一个可观察的。我遇到的问题是,当我尝试调用函数' buildDOM'从可观察的执行中我得到了错误"无法读取属性' buildDOM'未定义"。我认为这是一个范围界定问题,其中可观察的执行范围与“fetchClassrooms”不同。范围。如果是这样,是否有更好的方法从来自不同对象的可观察执行中调用函数?
fetchClassrooms (backend) {
function buildDOM (data) {
for(let classroom in data){
for (let student in data[classroom]){
let time = data[classroom][student];
this.buildDOM(classroom, student, time);
}
}
this.classroomSelected = Object.keys(data)[0];
};
backend.fetchClassrooms$()
.subscribe(
dataSnapshot => {
this.classrooms = dataSnapshot.val();
buildDOM(this.classrooms);
},
err => console.log(err),
() => console.log('complete')
);
},