好的,所以有一个名为ChartistJS的图表库。我在其中使用名为Axistitle plugin的插件来显示axisTitle。我创建了一个plunker来突出问题。现在的问题是,当我打开下拉列表时,我希望根据我选择的选项看到不同的Axis标题。听起来很简单。
现在,如果您转到chartist-plugin-axistitle.js
的源代码,请在第44和49行找到两个console.logs(options)
。现在打开开发人员控制台,清除控制台并从下拉列表中选择选项距离。您将在第44行和第49行看到两个console.log()。现在查看第44行的变量axisY.axistitle
和第49行的axisY.axistitle
。看看有什么不同?第44行必须为Distance(km)
,这是期望值,第49行的值为Unit
。为什么?上面一行中的值更改为Distance(km)
,它仍然是Unit
?它正在执行和打印,但为什么功能没有采取更新的值?我觉得这与封闭有关吗?我该如何解决这个问题?如何获取其中更新的选项值?
帮助表示赞赏。感谢
修改
因为我应该在这里给出一些简约的代码。
Chartist.plugins.ctAxisTitle = function(options) {
options = Chartist.extend({}, defaultOptions, options);
console.log(options); // I get updated values
console.log("I am printed everytime too. Because I am supposed too.");
return function ctAxisTitle(chart) {
console.log("I will get printed first time but not subsequent times. I don't know why?");
chart.on('created', function(data) {
console.log("I am printed every time as chart is re-rendered/created every time it is updated");
console.log(options); //Should be closure of above value. But I won't take updated options value. I'll stick with the one I was initialized with. Coz I am stupid.
});
};
};