Google Chart в объекте имеет неверный контекст - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь создать объект js, чтобы нарисовать линейный график Google.Моя проблема в том, что обратный вызов в google.charts.load имеет другой контекст, из-за чего я не могу использовать свойство this._data

MyNewObject = SomeOldObject.extend({
    initialize: function (data, options) {
        this._data = data;
        google.charts.load('current', {
            'packages': ["line", "corechart"]
            , "callback": this.loadData
            //, "context": this //This doesn't do anything
        });
    }
    , loadData: function () {
        this._dataTable = new google.visualization.DataTable();
        // here I'd like to add data from this._data to this._dataTable but context is different
    }
})

Как передать контекст в google.charts.load обратный вызов?

1 Ответ

0 голосов
/ 27 февраля 2019

Несмотря на то, что WhiteHat удалил свой ответ, это помогло мне найти решение:

MyNewObject = SomeOldObject.extend({
    initialize: function (data, options) {
        this._data = data;
        var context = this;
        var callback = function () {
            context.loadData(context);
        };
        google.charts.load('current', {
            'packages': ["line", "corechart"]
            , "callback": callback
        });
    }
    ,
    loadData: function (context) {
        this._dataTable = new google.visualization.DataTable();
        //now I can use context._data
    }
})
...