将局部变量的值获取到AngularJS中的控制器中

时间:2017-10-31 10:46:19

标签: javascript angularjs

我有一个包含控制器的JS文件和其他结构如下:

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的值getChart()到控制器。

我尝试将其添加到$onInit this.allCols = getData.allCols中,但它不起作用。可能不是正确的方式。

对此有任何解决方案吗?

1 个答案:

答案 0 :(得分:0)

  1. allCols 声明为全局变量并填充 getChart()
  2. 中的数据
  3. getChart()中发送 allCols 作为返回值,这样无论何时调用此方法,返回值都可以存储到另一个变量中并可以使用