JS,功能不能被看到'

时间:2016-04-05 23:31:49

标签: javascript scope rxjs

我在下面有一个对象方法,它接受另一个对象'后端'的参数。它使用后端对象中的方法&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')
        );
},

0 个答案:

没有答案