在Donut Chart中调用fontSize函数(打字稿)

时间:2019-01-24 17:18:28

标签: angular responsive-design chart.js

我正在尝试调用fontSize中的函数以动态获取值

我已经编写了这段代码,但是并没有获取价值。

var myDoughnutChart = new Chart(ctx, {
    fontSize: function() {
      if (this.width <= 768) {
        return 10;
      } else {
        return 13;
      }
    },
  }
}

1 个答案:

答案 0 :(得分:1)

您在回调函数中使用this,这将重置this的范围。

要使用正确的作用域,请将其更改为数组函数。像这样:

var myDoughnutChart = new Chart(ctx, {
    fontSize: () => {
      if (this.width <= 768) {
        return 10;
      } else {
        return 13;
      }
    },
  }
}

更新:

实际上不建议直接访问window对象,因为window是基于浏览器的API,并且您的应用程序可能可以在Angular Universal上运行(在不久的将来可能会)可能无法访问基于浏览器的API,例如window

请考虑遵循Brian Love在本文中建议的这种模式:Angular Window Provider

我知道一开始听起来可能有些不知所措,但这是最安全的方法。