将JSON响应值存储在属性中

时间:2015-10-05 19:18:08

标签: javascript angular

我正在进行api通话,并为结果分配了一个属性。我然后尝试使用此属性修改数据,但我得到一个未定义的错误:

这是我的班级:

sys.argv

@Injectable() export class DisplayService { screens: Array<any>; constructor(public http: Http){ } getDisplays() { var path = 'http://localhost:8000/getscreens'; $.ajax({ type: 'GET', url: path, success: function(data){ this.screens = data.screens; } }); console.log(this.screens); } } 按预期工作;但是,当我data.screens console.log时,我得到this.screens。如何存储响应以供以后使用?

1 个答案:

答案 0 :(得分:0)

看起来像范围问题...尝试:

@Injectable()
export class DisplayService {
    screens: Array<any>;

    constructor(public http: Http){

    }

    getDisplays() {
        var path = 'http://localhost:8000/getscreens';
        var that = this;
        $.ajax({
            type: 'GET',
            url: path,
            success: function(data){
                that.screens = data.screens;
            }
        });
        console.log(this.screens);
    }
}