var number = 0;  
var date = "2016-05-10"
$scope.test = date;

Me gustaría hacer un bucle con el número variable para obtener como resultado

$scope.test1 = 2016-05-10
$scope.test2 = 2016-05-10
$scope.test3 = 2016-05-10

La variable $scope.test no es una matriz sino una cadena

-2
John 10 may. 2016 a las 18:55

3 respuestas

La mejor respuesta

Creo que está infravalorando o ignorando los propósitos de las matrices y ng-repeat. A partir de sus comentarios, parece que desea poder iterar a través de múltiples grupos de conjuntos de datos, cada grupo produce un gráfico, y voy a usar su comentario anterior como un permiso para resolver lo que creo que es su problema , en lugar de su pregunta literal.

Eche un vistazo a este ejemplo que hice, una simple modificación de su propia muestra JSFiddle. Todo lo que estoy haciendo es colocar los objetos que contienen los conjuntos de datos (copié y modifiqué el que tenía) en una matriz, luego iterar sobre ellos, pasando los datos a gráficos con ng-repeat (puede que tenga que desplazarse abajo en el panel de vista para ver el segundo gráfico).

En su controlador JS:

// 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]
        }
      ]
    }];

En su vista HTML:

<canvas ng-repeat="data in chartDataArray" tc-chartjs-line chart-options="options" chart-data="data" auto-legend ng-click="chartClick($event)" chart="chart"></canvas>

Esto es básicamente solo un bucle foreach.

0
Harris 10 may. 2016 a las 20:30
 $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

Y en mi html

 <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>
0
John 12 may. 2016 a las 11:47
for (var i = 0; i < $scope.number; ++i) {
    $scope['test' + i] = date;
}

¿Como eso?

1
dtanders 10 may. 2016 a las 15:59