Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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将字符串与循环编号连接起来_Javascript_Angularjs - Fatal编程技术网

javascript/angularjs将字符串与循环编号连接起来

javascript/angularjs将字符串与循环编号连接起来,javascript,angularjs,Javascript,Angularjs,为了得到结果,我想用变量数字做一个循环 var number = 0; var date = "2016-05-10" $scope.test = date; 变量$scope.test不是数组,而是(变量i=0;i

为了得到结果,我想用变量数字做一个循环

var number = 0;  
var date = "2016-05-10"
$scope.test = date;
变量
$scope.test
不是数组,而是(变量i=0;i<$scope.number;++i)的字符串{
$scope.test1 = 2016-05-10
$scope.test2 = 2016-05-10
$scope.test3 = 2016-05-10
$scope['test'+i]=日期; }
像这样吗?

我认为您低估或不了解数组和
ng repeat
的用途。从您的评论中,听起来您希望能够遍历多组数据集,每组生成一个图表,我将使用您先前的评论作为解决我认为是您的问题的许可,而不是您的字面问题

看看我对您自己的JSFIDLE示例所做的简单修改。我所做的只是将包含数据集的对象(我复制并调整了您拥有的数据集)放入一个数组中,然后对它们进行迭代,将数据传递到带有
ng repeat
的图表(您可能需要在视图窗格中向下滚动以查看第二个图表)

在JS控制器中:

for (var i = 0; i < $scope.number; ++i) {
    $scope['test' + i] = date;
}
在HTML视图中:

// Chart.js Data
    $scope.chartDataArray = [{
      labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
      datasets: [
        {
          label: 'My First dataset',
          // ... All the stuff for coloration
          data: [65, 59, 80, 81, 56, 55, 40]
        },
        {
          label: 'My Second dataset',
          // ... All the stuff for coloration
          data: [28, 48, 40, 19, 86, 27, 90]
        }
      ]
    },{
      labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
      datasets: [
        {
          label: 'My First dataset',
          // ... All the stuff for coloration
          data: [0, 1, 2, 3, 4, 5, 6]
        },
        {
          label: 'My Second dataset',
          // ... All the stuff for coloration
          data: [12, 10, 8, 6, 4, 2, 0]
        }
      ]
    }];

这基本上只是一个foreach循环。

$scope.chartDataArray=[];
<canvas ng-repeat="data in chartDataArray" tc-chartjs-line chart-options="options" chart-data="data" auto-legend ng-click="chartClick($event)" chart="chart"></canvas>
对于(var i=0;i<4;i++)//我将“4”替换为表示所需图表数量的变量,我正在使用RESTAPI { $scope.chartDataArray[i]={ 标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”],//我用我的数据替换它 数据集:[{ 标签:“我的第一个数据集”, fillColor:'rgba(220220,0.2)', strokeColor:“rgba(2201)”, pointColor:'rgba(220220,1)', pointStrokeColor:“#fff”, pointHighlightFill:“#fff”, pointHighlightStroke:'rgba(2201,1)', 数据:[65,59,80,81,56,55,40]//我的数据 }, { 标签:“我的第二个数据集”, fillColor:“rgba(151187205,0.2)”, strokeColor:“rgba(151187205,1)”, 点颜色:“rgba(151187205,1)”, pointStrokeColor:“#fff”, pointHighlightFill:“#fff”, pointHighlightStroke:“rgba(151187205,1)”, 数据:[28,48,40,19,86,27,90]//我的数据 }] }; //范围。选项。。。。 }//关闭
在我的html中

 $scope.chartDataArray = [];
for (var i = 0; i < 4; i++)// I replace "4" by variable which represent number of charts I need, I'm consuming Rest Api  
 {
  $scope.chartDataArray[i] = {
    labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],// I replace it by my datas
    datasets: [{
      label: 'My First dataset',
      fillColor: 'rgba(220,220,220,0.2)',
      strokeColor: 'rgba(220,220,220,1)',
      pointColor: 'rgba(220,220,220,1)',
      pointStrokeColor: '#fff',
      pointHighlightFill: '#fff',
      pointHighlightStroke: 'rgba(220,220,220,1)',
      data: [65, 59, 80, 81, 56, 55, 40] // my datas
    }, {
      label: 'My Second dataset',
      fillColor: 'rgba(151,187,205,0.2)',
      strokeColor: 'rgba(151,187,205,1)',
      pointColor: 'rgba(151,187,205,1)',
      pointStrokeColor: '#fff',
      pointHighlightFill: '#fff',
      pointHighlightStroke: 'rgba(151,187,205,1)',
      data: [28, 48, 40, 19, 86, 27, 90] // my datas
    }]
  }; 
//scope.options ....
} //close the for


为什么不为
$scope.test?
设置一个数组呢。这真的是它的核心,有一系列相关的价值观。我认为你必须对你的问题进行更多的解释。@Harris Weinstein我正试图在angular中嵌入带有指令的多重图表。我可以显示一个这样的图表$scope.data={标签:['一月','二月','三月','四月','五月','六月','七月'](简短的例子)…..在我的html页面中,我得到它:chart data=“data”。我想做一个循环以获得类似$scope.data1=…的内容,并使用ng REPLAT指令“chart data=data1…”在html中显示它(请注意,“1”将被增量变量替换。如果我这样做:chart data=data[1],它不起作用。这就是为什么我不能使用数组它是一个JSFIDLE链接来更好地理解我所说的内容。事实上,我真的想用一个指令嵌入多个图表,然后我将用ng repeat指令创建元素来显示图表谢谢,但我试过了,它不起作用。我想当你用角度绑定范围时,您需要$scope.“'nice:)谢谢。关于元素的另一个问题,请执行以下操作”"如何以自己的方式显示每个图表?在一个面板中单独显示每个图表会很有趣,例如
ng repeat
指令这里只依赖于
$scope
,因此它基本上对任何要重复的HTML元素都是有效的,并且每个迭代中的
数据
变量都是有效的重复元素中的任意位置。您只需将
ng repeat
剪切并粘贴到一个div上,然后放置画布(记住从中删除
ng repeat
)在div中,它会按您的要求执行。好的,它工作了!非常感谢。更进一步,如果您不知道chartDataArray中ChartData的数量,并且必须创建一个循环来处理数据,您将如何创建循环来在chartDataArray中动态插入ChartData?我知道了,谢谢。我所做的是:使用variable i=0,我在绘制每个chartDataArray后递增[i]我不完全确定我是否遵循了你的意思。据我所知,你不应该直接跟踪任何东西。你能用一个显示你所做的事情的JSFIDLE版本来响应吗?
 <div ng-repeat="data in chartDataArray">
  <canvas tc-chartjs-line chart-options="options" chart-data="data" auto-         legend ng-click="chartClick($event)" chart="chart"></canvas>
 </div>