从方法返回值到变量

时间:2017-10-31 13:03:34

标签: javascript angularjs

我有这个javascript文件结构:

class RandomCtrl {
    constructor(randomService) {
    this.randomService = randomService;
    ...
    }

    $onInit() {
        getData.call(null, this);
    }

    ...

}

function getData(RandomCtrl) {
    ...
}


function getChart(data) {
    if (!data) {
        return;
    }

    const chartOptions = getWeekHourlyOptions(data);

    const allCols = [].concat(chartOptions.dataColumns);
    allCols.push(["x"].concat(_.map(chartOptions.xAxis, element => moment(element).valueOf())));
    const xVals = xAxisValues(chartOptions.xAxis);

    ...

}

...

RandomCtrl.$inject = ['randomService'];

export const Random = {
    bindings: {
        data: '<',
        siteNames: '<'
    },
    templateUrl: randomPageHtml,
    controller: RandomCtrl
};

我希望将allCols的值设为变量。我尝试在return allCols;方法的末尾添加getChart()并在$onInit()内调用它。

尝试了几种方式:

const wow = getChart();

const wow = getChart(this);

const wow = getChart.call(null, this);

所有人都说哇未定义。知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

尝试下面的代码,其中addOneTimeListener包装器将在绘制完表格时执行它,它应该在创建表之后但在调用draw之前执行。

google.visualization.events.addOneTimeListener(table, 'ready', function () {       
        var tmpData = table.getChart();
        // ...        
});