这是一个html页面,每当触发ng-click
时它就被称为方法:
<div ng-repeat="page in $ctrl.users">
<main-component page="$ctrl.pageNames[page]"
ng-click="$ctrl.updateLegendChart($ctrl.pageNames[page])"
users= "$ctrl.users">
</main-component>
</div>
ng-click
调用updateLegendChart
这是控制器内部的方法,如下所示:
updateLegendChart(pageNames){
this.chartStuff.chart.unload(pageNames);
}
到目前为止,它按预期工作,unload()
从图表中删除一行。
我想要做的是在我再次点击时将其添加回去。表现为灯开关。
基本上,应该在那里添加load()
方法,但我没有设法创建切换功能。
我试着这样做没有成功:
updateLegendChart(pageNames){
let aswitch = true;
if(aswitch){
this.chartStuff.chart.unload(pageNames);
aswitch = false;
return;
}
if(!aswitch){
this.chartStuff.chart.load(RandomCtrl.chartStuff.allCols[0]);
aswitch = true;
return;
}
}
答案 0 :(得分:1)
正如我在评论中提到的,您必须在aswitch
方法之外声明updateLegendChart
,因为您不想每次都初始化它,而是在调用它。使其为您的控制器类全局,如:
class DemandCtrl {
constructor() {
this.aswitch = true;
}
updateLegendChart(pageNames) {
if (this.aswitch) {
this.chartStuff.chart.unload(pageNames);
} else {
this.chartStuff.chart.load(RandomCtrl.chartStuff.allCols[0]);
}
this.aswitch = !this.aswitch;
}
}
答案 1 :(得分:0)
ES2015: 内部构造函数:
class DemandCtrl {
constructor(ChartDataService) {
...
this.aswitch = true;
}
....