如何在循环内使用push

时间:2016-11-07 10:28:36

标签: angularjs json loops

以下函数返回此json对象:

  

[{“number”:2,“des”:“CeinturesDeSécuritésPassagères”,“la_date”:1506960648000},{“number”:7,“des”:“CeinturesDeSécuritéConducteur”,“la_date” :1509542654000},{“number”:1,“des”:“CeinturesDeSécuritésPassagères”,“la_date”:1512134781000}]

功能:

  $scope.loadDataFromToMonth= function (from,to,year) {
    var url = servername+'admin/dashboard/getIncidentDepartByMonthFromTo/'+from+'/'+to+'/'+year;
    alert(url);
    function onSuccess(response) {
        console.log("+++++getIncidentDepartByMonthFromTo SUCCESS++++++");
        if (response.data.success != false) {
            $scope.payloadgetIncidentDepartByMonthFromTo = response.data.data;
            var getIncidentDepartByMonthFromTo= $scope.payloadgetIncidentDepartByMonthFromTo;
            console.log(JSON.stringify(getIncidentDepartByMonthFromTo));
            $scope.labels = [];
           // charCtrl.toto = [];
           // $scope.data = {};
            //$scope.qsd.push('ff');
            getIncidentDepartByMonthFromTo.forEach(function(data) {
               // charCtrl.toto.push($filter('monthName')(monthNumber));
                var monthNumber=$filter('date')(data.la_date, "MM");
                //$scope.labelsf.push($filter('monthName')(monthNumber));
                var mun=data.number;
                //$scope.dataf.push(data.number);
                $scope.data = {
                    labels: [monthNumber],
                    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: [data.number]
                        }

                    ]
                };
            });
        }
        else {
            alert("failure");
        }
    };
    function onError(response) {
        console.log("-------getIncidentDepartByMonthFromTo FAILED-------");
        //$scope.stopSpin('spinner-0');
        console.log(response.data);
        console.log("Inside getIncidentDepartByMonthFromTo error condition...");
    };
    //----MAKE AJAX REQUEST CALL to GET DATA----
    ajaxServicess.getData(url,username,password, 'GET', '').then(onSuccess, onError);
};

我的问题是,当数据以bar char显示时,只显示最后一个json对象:

  

{“number”:1,“des”:“CeinturesDeSécuritésPassagères”,“la_date”:1512134781000}

1 个答案:

答案 0 :(得分:0)

基本上,您需要创建一个特定的对象,并为对象指定值,如下所示:

$scope.data = {}; // new object 
$scope.data.datasets = []; // new array in data object ..
$scope.data.labels =[];
getIncidentDepartByMonthFromTo.forEach(function(data) {

    var monthNumber = $filter('date')(data.la_date, "MM");

    var mun = data.number;


    $scope.data.labels.push(monthNumber);

    var dataSetObj = {}; //temp object to push into dataset array..
    dataSetObj.data = [];
    dataSetObj.label= 'My First dataset';
    dataSetObj.fillColor='rgba(220,220,220,0.2)';
    dataSetObj.strokeColor= 'rgba(220,220,220,1)';
    dataSetObj.pointColor= 'rgba(220,220,220,1)';
    dataSetObj.pointStrokeColor= '#fff';
    dataSetObj.pointHighlightFill= '#fff';
    dataSetObj.pointHighlightStroke='rgba(220,220,220,1)';
    dataSetObj.data.push(data.number);

    $scope.data.datasets.push(dataSetObj);

});