如何将angularjs范围变量数据获取到chartjs数据

时间:2017-12-26 01:15:21

标签: javascript angularjs spring chart.js

我试图将angularjs控制器的scope变量中的值传递给chartjs数据。

这是我的master.controller.js - chartjs在master.controller.js文件中:

    /**
 * Master Controller
 */

// Global variables for chart.js
var totalTripsCompleted = '';
var TruckTripsFortheDay = [];
var totalTrucks = [];
var totalNumberofTripsCompleted = '';
var numberoftrucks = [];

angular.module('App')
    .controller('MasterCtrl', ['$scope','$http','StorageService','PagingUtil','$state','$rootScope', function ($scope, $http, StorageService, PagingUtil, $state, $rootScope) {
    $scope.client = false;
    $scope.stateName = '';
    $scope.loggedIn = false;
    $scope.landingPage = "shipments"

    var samplearrayvar = [];
    $scope.init = function(){
    }
//    $scope.dueRenewal = 0;
//    $scope.dueService = 0;
//    $scope.dueSoonRenewal = 0;
//    $scope.dueSoonService = 0;
    $scope.user = {};
    $scope.typeCount = [];
    $scope.getDueRenewal = function(){
        $http.get("/api/renewalReminders?status=due").success(function(response,status,headers){
            $scope.dueRenewal = headers('X-Total-Count');
        });
    }
    $scope.getDueService = function(){
        $http.get("/api/serviceReminders?status=due").success(function(response,status,headers){
            $scope.dueService = headers('X-Total-Count');
        });
    }
    $scope.getDueSoonRenewal = function(){
        $http.get("/api/renewalReminders?status=dueSoon").success(function(response,status,headers){
            $scope.dueSoonRenewal = headers('X-Total-Count');
        });
    }
    $scope.getDueSoonService = function(){
        $http.get("/api/serviceReminders?status=dueSoon").success(function(response,status,headers){
            $scope.dueSoonService = headers('X-Total-Count');
        });
    }

    $scope.checkIfLoggedIn = function(){
        $scope.user = StorageService.get("user");
        $rootScope.user = false;
        $http.get("/api/account").success(function(response){
            $scope.loggedIn = true;
            if($scope.user == null){
                $scope.user = response;
                $rootScope.user = response;
                StorageService.save("user",$scope.user);
            }
            if($scope.user.login == response.login){
                if($state.current.name=="login"){
                    $state.go($scope.landingPage);
                }
            }

        }).error(function(){
            $scope.loggedIn=false;
            $scope.user = false;
            if($state.current.name!="login" && $state.current.name!=$scope.landingPage){
                console.log("last state");
                $rootScope.attemptedState = $state.current.name;
                $rootScope.attemptedStateParams = $state.params;
            }
            StorageService.clearAll();
            $state.go("login");


        });
    }

    $scope.redirectFromLastAttempt = function(){
        if($rootScope.attemptedState){
            var go = $rootScope.attemptedState;
            $rootScope.attempatedState = false;
            $state.go(go,$rootScope.attemptedStateParams);
            return;
        }
    }

    $scope.checkIfLoggedIn();
    $scope.request = {};
    $scope.login = function(){
        $http.post("/api/authenticate",$scope.request)
        .success(function(response){
            $scope.checkIfLoggedIn();
        });
    }

    $scope.changePassword = function(){
        $http.post("/api/account/change_password",$scope.request)
        .success(function(response){
            $state.go($scope.landingPage);
        }).error(function(response){
            console.log(response);
            alert("Cannot change password. invalid old password");
        });
    }



    $scope.logout = function(){
        StorageService.clearAll('user',$scope.user);

        $http.delete("/api/authenticate?username="+$scope.request.username+"&password="+$scope.request.username)
        .success(function(response){
            $scope.checkIfLoggedIn();
        }).error(function(response){
            $scope.checkIfLoggedIn();
        });
    }


    $rootScope.getDestinations = function(customerId,list){
        $http.get("/api/destinations?customerId="+customerId).success(function(response){
            list = response;
        });
    }

    $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
        $scope.stateName = toState.name;
        $scope.checkIfLoggedIn();
    });

    $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) {
        $scope.stateName = toState.name;
        console.log($scope.stateName);
        if($scope.stateName=='index'){
            $scope.getDueRenewal();
            $scope.getDueService();
            $scope.getDueSoonRenewal();
            $scope.getDueSoonService();
        }
        if(fromState.name){
            $rootScope.fromState = fromState.name;
            $rootScope.fromParams = fromParams;
        }

    });


    $rootScope.showError = function(message,title){
        $rootScope.errorMessage = message;
        $rootScope.errorMessageTitle = null;
        if(title){
            $rootScope.errorMessageTitle = title;
        }
        $("#error-modal").modal('show');
    };

    $rootScope.$on('loading:progress', function (){
        // show loading gif
        $("#loading-modal").modal({keyboard:false,show:true,backdrop:'static'});
    });

    $rootScope.$on('loading:finish', function (){
        // hide loading gif
//      setTimeout(function(){
            $("#loading-modal").modal("hide");
//      },5000);
    });

    $rootScope.hasAccess = function(rolenames){
        if($scope.user){
            if($scope.user.roles){
                if($scope.user.roles.indexOf('ROLE_ADMIN')>-1){
                    return true;
                }
            }else{
                return false;
            }
        }else{
            return false;
        }
        for(var i in rolenames){
            if($scope.user.roles.indexOf(rolenames[i])>-1){
                return true;
            }
        }
        return false;
    }

    //Daily Truck Utilization-------------------------------------------------------------------------------
    $scope.getTrucksDispatched = function() {
        $scope.trucksample = [];
        var currentDate = new Date();
        var day = currentDate.getDate();
        var month = currentDate.getMonth();
        var year = currentDate.getFullYear();
        $scope.truckdispatcheddate = "(" + month + "-" + day + "-" + year + ")";
        $http.get("/api/shipmentstatusanddispatched").success(function(response){
            totalTripsCompleted = response;

            console.log(response);
        });
    }

    $scope.getTotalNumberofTrucks = function() {
        $http.get("/api/vehicleTrucks").success(function(response) {
            $scope.totalNumberofTrucks = response[0];
            console.log(response);
        });
    }



    //Number of trips running-------------------------------------------------------------------------------
    var samplearray = [];
    $scope.getVehicleTypeCount = function(){

            $http.get("/api/vehicleTrucks").success(function(response){
//              for (var i = 0; i < response.length; i++) {
//                  var count = 0;
//                  var key = response[i].commodityType;
//                  $scope.count = {};
//                  for (var j = 0; j < response.length; j++) {
//                      if(response[j].commodityType == key){
//                          count++;
//                      }
//                  }
//                  $scope.count[key] = count;
//                  $scope.typeCount.push($scope.count);
//                  samplearray.push(response[i].commodityType);
//              }

                console.log(response);
            });
    }

    $scope.numberOfTrips = function() {
        $scope.getTotalCompletedTrips = '';
        $http.get("/api/shipmentcountstatuscompleted").success(function(response) {
            $scope.getTotalCompletedTrips = response;
            totalNumberofTripsCompleted = response;
            console.log($scope.getTotalCompletedTrips);
        });

    }

    //Number or % of Dry, Chilled, Reefer trips for the day--------------------------------------------

//  $scope.getCommodityTypeVehicleQuantity = function() {
//      
//      //
//  }

    //% Truck break down ( repairs and maint) and average number of days down--------------------------

    //POD status -dispatched, delivered, completed (running) / unbilled--------------------------------

    $scope.tripStatus = function() {
        var dispatched = '';
        var delivered = '';
        var completed = '';
        var totaltrips = '';
        $http.get("/api/shipmentcountstatusdispatched").success(function(response) {
            dispatched = response;
        });

        $http.get("/api/shipmentcountstatusdelivered").success(function(response) {
            delivered = response;
        });

        $http.get("/api/shipmentcountstatuscompleted").success(function(response) {
            completed = response;
        });

        $http.get("/api/shipmentTotaltrips").success(function(response) {
            totaltrips = response;
        });

        $scope.completionrate = completed / totaltrips;
    }
    //Average Diesel consumption per client(?) against target------------------------------------------




    $scope.tripStatus();
    $scope.numberOfTrips();
    $scope.getTotalNumberofTrucks();
    $scope.getTrucksDispatched();
}]);



var trucksperdepotid = document.getElementById('trucksperdepot').getContext('2d');

var trucksperdepotChart = new Chart(trucksperdepotid, {
    type: 'bar',
    data: {

        labels: ['Depot 1', 'Depot 2', 'Depot 3', 'Depot 4', 'Depot 5'],
        datasets: [{
            label: 'Number of Trucks per Depot',
            data: [
                90,
                80,
                70,
                60,
                50
            ],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]

    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true
                }
            }]
        }
    }
});

var tripscompletedid = document.getElementById('tripscompleted').getContext('2d');

var tripscompletedChart = new Chart(tripscompletedid, {
    type: 'bar',
    data: {

        labels: ['Number of Trips Completed'],
        datasets: [{
            label: 'Number of trips completed',
            data: [
                totalNumberofTripsCompleted
                ],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)'
//                'rgba(255, 99, 132, 0.2)',
//                'rgba(54, 162, 235, 0.2)',
//                'rgba(255, 206, 86, 0.2)',
//                'rgba(75, 192, 192, 0.2)',
//                'rgba(153, 102, 255, 0.2)',
//                'rgba(255, 159, 64, 0.2)',
//                'rgba(153, 102, 255, 0.2)',
//                'rgba(153, 102, 255, 0.2)',
//                'rgba(153, 102, 255, 0.2)',
//                'rgba(153, 102, 255, 0.2)',
//                'rgba(153, 102, 255, 0.2)',
//                'rgba(153, 102, 255, 0.2)',
//                'rgba(153, 102, 255, 0.2)'
            ],
            borderColor: [
                'rgba(255,99,132,1)'
//                'rgba(255,99,132,1)',
//                'rgba(54, 162, 235, 1)',
//                'rgba(255, 206, 86, 1)',
//                'rgba(75, 192, 192, 1)',
//                'rgba(153, 102, 255, 1)',
//                'rgba(255, 159, 64, 1)',
//                'rgba(153, 102, 255, 1)',
//                'rgba(153, 102, 255, 1)',
//                'rgba(153, 102, 255, 1)',
//                'rgba(153, 102, 255, 1)',
//                'rgba(153, 102, 255, 1)',
//                'rgba(153, 102, 255, 1)',
//                'rgba(153, 102, 255, 1)'
            ],
            borderWidth: 1
        }]

    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true
                }
            }]
        }
    }
});

var commoditytypeid = document.getElementById('commoditytype').getContext('2d');

//commoditytypeid.height=100;

var commoditytypeChart = new Chart(commoditytypeid, {
    type: 'pie',
    data: {
        datasets: [{
            data: [
                20,
                30,
                40,
                50
            ],
            backgroundColor: [
                'rgba(255, 99, 132, 1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }],
        labels: [
            'Dry',
            'Chilled',
            'Frozen',
            'Wet'
        ]
    },
    options: {

    }
});

var commoditytypetodayid = document.getElementById('commoditytypetoday').getContext('2d');

//commoditytypeid.height=100;

var commoditytypeChart = new Chart(commoditytypetodayid, {
    type: 'pie',
    data: {
        datasets: [{
            data: [
                20,
                30,
                40,
                50
            ],
            backgroundColor: [
              'rgba(255, 99, 132, 1)',
              'rgba(54, 162, 235, 1)',
              'rgba(255, 206, 86, 1)',
              'rgba(255, 159, 64, 1)'
          ],
          borderColor: [
              'rgba(255,99,132,1)',
              'rgba(54, 162, 235, 1)',
              'rgba(255, 206, 86, 1)',
              'rgba(255, 159, 64, 1)'
          ],
          borderWidth: 1
        }],
        labels: [
            'Dry',
            'Chilled',
            'Frozen',
            'Wet'
        ]
    },
    options: {

    }
});

var commoditytypeyesterdayid = document.getElementById('commoditytypeyesterday').getContext('2d');

//commoditytypeid.height=100;

var commoditytypeChart = new Chart(commoditytypeyesterdayid, {
    type: 'pie',
    data: {
        datasets: [{
            data: [
                20,
                30,
                40,
                50
            ],
            backgroundColor: [
            'rgba(255, 99, 132, 1)',
            'rgba(54, 162, 235, 1)',
            'rgba(255, 206, 86, 1)',
            'rgba(255, 159, 64, 1)'
        ],
        borderColor: [
            'rgba(255,99,132,1)',
            'rgba(54, 162, 235, 1)',
            'rgba(255, 206, 86, 1)',
            'rgba(255, 159, 64, 1)'
        ],
        borderWidth: 1
        }],
        labels: [
            'Dry',
            'Chilled',
            'Frozen',
            'Wet'
        ]
    },
    options: {

    }
});

var commoditytypethisweekid = document.getElementById('commoditytypethisweek').getContext('2d');

//commoditytypeid.height=100;

var commoditytypeChart = new Chart(commoditytypethisweekid, {
    type: 'pie',
    data: {
        datasets: [{
            data: [
                20,
                30,
                40,
                50
            ],
            backgroundColor: [
          'rgba(255, 99, 132, 1)',
          'rgba(54, 162, 235, 1)',
          'rgba(255, 206, 86, 1)',
          'rgba(255, 159, 64, 1)'
      ],
      borderColor: [
          'rgba(255,99,132,1)',
          'rgba(54, 162, 235, 1)',
          'rgba(255, 206, 86, 1)',
          'rgba(255, 159, 64, 1)'
      ],
      borderWidth: 1
        }],
        labels: [
            'Dry',
            'Chilled',
            'Frozen',
            'Wet'
        ]
    },
    options: {

    }
});

var commoditytypethismonthid = document.getElementById('commoditytypethismonth').getContext('2d');

//commoditytypeid.height=100;

var commoditytypeChart = new Chart(commoditytypethismonthid, {
    type: 'pie',
    data: {
        datasets: [{
            data: [
                20,
                30,
                40,
                50
            ],
            backgroundColor: [
        'rgba(255, 99, 132, 1)',
        'rgba(54, 162, 235, 1)',
        'rgba(255, 206, 86, 1)',
        'rgba(255, 159, 64, 1)'
    ],
    borderColor: [
        'rgba(255,99,132,1)',
        'rgba(54, 162, 235, 1)',
        'rgba(255, 206, 86, 1)',
        'rgba(255, 159, 64, 1)'
    ],
    borderWidth: 1
        }],
        labels: [
            'Dry',
            'Chilled',
            'Frozen',
            'Wet'
        ]
    },
    options: {

    }
});

var truckdownid = document.getElementById("truckdown").getContext("2d");

var truckdownChart = new Chart(truckdownid, {
  type: 'bar',
  data: {
    labels: ['Truck Down'],
    datasets: [{
      label: 'Vehicles with On-Service Status',
      backgroundColor: "rgba(255, 99, 132, 0.2)",
      borderColor: 'rgba(255,99,132,1)',
      data: [80]
    }, {
      label: 'Number of fleet',
      backgroundColor: "rgba(54, 162, 235, 0.2)",
      borderColor: 'rgba(54, 162, 235, 1)',
      data: [90]
    }]
  },


  options: {
    legend: {
      display: true,
      labels: {
        fontColor: "#000080",
      }
    },
    scales: {
      yAxes: [{
        ticks: {
          beginAtZero: true
        }
      }]
    }
  }
});

var truckdownaverageid = document.getElementById("truckdownaverage").getContext("2d");

var truckdownaverageChart = new Chart(truckdownaverageid, {
  type: 'bar',
  data: {
    labels: ['Truck Down Average'],
    datasets: [{
      label: 'Vehicles with On-Service Status',
      backgroundColor: "rgba(255, 99, 132, 0.2)",
      borderColor: 'rgba(255,99,132,1)',
      data: [80]
    }, {
      label: 'Number of fleet',
      backgroundColor: "rgba(54, 162, 235, 0.2)",
      borderColor: 'rgba(54, 162, 235, 1)',
      data: [90]
    }]
  },


  options: {
    legend: {
      display: true,
      labels: {
        fontColor: "#000080",
      }
    },
    scales: {
      yAxes: [{
        ticks: {
          beginAtZero: true
        }
      }]
    }
  }
});


var tripstatusforthemonthid = document.getElementById('tripstatusforthemonth').getContext('2d');

//commoditytypeid.height=100;

var tripstatusforthemonthChart = new Chart(tripstatusforthemonthid, {
    type: 'pie',
    data: {
        datasets: [{
            data: [
                20,
                30,
                40,
                50
            ],
            backgroundColor: [
              'rgba(255, 99, 132, 1)',
              'rgba(54, 162, 235, 1)',
              'rgba(255, 206, 86, 1)',
              'rgba(255, 159, 64, 1)'
          ],
          borderColor: [
              'rgba(255,99,132,1)',
              'rgba(54, 162, 235, 1)',
              'rgba(255, 206, 86, 1)',
              'rgba(255, 159, 64, 1)'
          ],
          borderWidth: 1
        }],
        labels: [
            'Dry',
            'Chilled',
            'Frozen',
            'Wet'
        ]
    },
    options: {

    }
});

var tripscreatedid = document.getElementById('tripscreated').getContext('2d');

var tripscreatedChart = new Chart(tripscreatedid, {
    type: 'doughnut',
    data: {
        datasets: [{
            data: [
                20,
                30,
                40,
                50
            ],
            backgroundColor: [
              'rgba(255, 99, 132, 1)',
              'rgba(54, 162, 235, 1)',
              'rgba(255, 206, 86, 1)',
              'rgba(255, 159, 64, 1)'
          ],
          borderColor: [
              'rgba(255,99,132,1)',
              'rgba(54, 162, 235, 1)',
              'rgba(255, 206, 86, 1)',
              'rgba(255, 159, 64, 1)'
          ],
          borderWidth: 1
        }],
        labels: [
            'Dry',
            'Chilled',
            'Frozen',
            'Wet'
        ]
    },
    options: {

    }
});


var averagedieselconsumptionid = document.getElementById('averagedieselconsumption').getContext('2d');

var averagedieselconsumptionChart = new Chart(averagedieselconsumptionid, {
    type: 'doughnut',
    data: {
        datasets: [{
            data: [
                20,
                30,
                40,
                50
            ],
            backgroundColor: [
              'rgba(255, 99, 132, 1)',
              'rgba(54, 162, 235, 1)',
              'rgba(255, 206, 86, 1)',
              'rgba(255, 159, 64, 1)'
          ],
          borderColor: [
              'rgba(255,99,132,1)',
              'rgba(54, 162, 235, 1)',
              'rgba(255, 206, 86, 1)',
              'rgba(255, 159, 64, 1)'
          ],
          borderWidth: 1
        }],
        labels: [
            'Dry',
            'Chilled',
            'Frozen',
            'Wet'
        ]
    },
    options: {

    }
});
  

我试图将$ scope.totalNumberofTrucks的值获取到chartjs的数据。但是当我尝试将该范围的值传递给全局变量时,我在chartjs数据中声明的全局变量仍为空/ null。

0 个答案:

没有答案