Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Angularjs Google图表中隐藏和显示列_Javascript_Angularjs_Charts_Google Visualization - Fatal编程技术网

Javascript 如何在Angularjs Google图表中隐藏和显示列

Javascript 如何在Angularjs Google图表中隐藏和显示列,javascript,angularjs,charts,google-visualization,Javascript,Angularjs,Charts,Google Visualization,我有一个角度谷歌图表,每当用户点击删除R1按钮时,R1应该被删除,当用户点击R2时,R2必须被删除。这里我有我的[Fiddle][1]我试着使用谷歌图表方法删除removeColumn['r1'],就像谷歌图表使用的一样,但没有起作用我需要在angularjs谷歌图表中隐藏和显示列的方法。 如果你有任何想法,请告诉我 [1]: http://jsfiddle.net/3crujkav/ 使用复选框可能会更容易 var data; var colors = ['red', 'blue', 'gr

我有一个角度谷歌图表,每当用户点击删除R1按钮时,R1应该被删除,当用户点击R2时,R2必须被删除。这里我有我的[Fiddle][1]我试着使用谷歌图表方法删除removeColumn['r1'],就像谷歌图表使用的一样,但没有起作用我需要在angularjs谷歌图表中隐藏和显示列的方法。 如果你有任何想法,请告诉我

[1]: http://jsfiddle.net/3crujkav/

使用复选框可能会更容易

var data;
var colors = ['red', 'blue', 'green'];
$scope.$watch('datax', function(newValue, oldValue) {
  data = google.visualization.arrayToDataTable($scope.datax);
  colors.forEach(function (color, index) {
    data.setColumnProperty(index + 1, 'color', color);
  });
  drawChart();
}, true);

$scope.toggleCol = function() {
  drawChart();
}

function drawChart() {
  var chartColors = [];
  var chartColumns = [0];
  var view = new google.visualization.DataView(data);

  var checks = document.getElementsByTagName('input');
  for (var i = 0; i < checks.length; i++) {
    var seriesColumn = parseInt(checks[i].value);
    if (checks[i].checked) {
      chartColumns.push(seriesColumn);
      chartColors.push(data.getColumnProperty(seriesColumn, 'color'));
    }
  }
  view.setColumns(chartColumns);
  options.colors = chartColors;
  chart.draw(view, options);
}
然后使用新的数据视图完成绘图

function drawChart() {
  var chartColors = [];
  var chartColumns = [0];

  // use dataView here
  var view = new google.visualization.DataView(dataView);
  ...

您好@WhiteHat非常感谢您的回复,先生,是的,它是有效的,但部分,先生,我将只在第一次呼叫时获取所有数据,因此假设我有100条记录,默认情况下,我在图表中显示一条记录。现在,当用户选择任何人时,我应该将其添加到图表中,如果他取消选择,则我将从图表中删除它。简言之,我不知道用户将从multiselect下拉列表中选择多少条记录,因此我们无法提前确定图表标题和颜色,一旦用户检查R2,我将在他选择R3时将R2添加到图表中,我将从可用数据中添加R3。这是一个处理6条记录的小提琴,但可能有20条、30条或40条记录。您能将其设置为动态吗?非常感谢你的回答,先生,给你一票。请帮助我的动态,然后将接受它再次感谢先生。这个只有在我为每个记录定义颜色时才起作用,当用户选择任何R1检查时,是否可以动态定义颜色?因为我将拥有所有数据,但只需要显示第一条记录,然后我不知道哪一个用户单击,然后我需要添加到图表中。javascript/浏览器不提供调色板-你必须从某处获得颜色-你想使用像提供的随机颜色生成器吗?真的很好,先生,我是认真的。我还有一个疑问,先生,后端数据是数组格式的,所有的数据字符串都是类似于这个JSFIDLE的,你能告诉我一种将列格式化为数字或整数的方法吗?实际上,我需要的所有数字都是整数来处理这个图表。我不能一开始就定义它们,因为我们正在添加列,有什么想法吗,先生,请帮我做这个。
function drawChart() {
  var chartColors = [];
  var chartColumns = [0];

  // use dataView here
  var view = new google.visualization.DataView(dataView);
  ...