невозможно показать галочки на haxis

Я пытаюсь показать значения галочек на оси. Ниже приведен код, который динамически получает данные и создает столбчатую диаграмму. Проблема заключается в том, что в приведенном ниже коде динамические метки оси h не отображаются, на оси h отображаются значения, указанные в свойстве f: {"v": i, "f": hAxisValue} в cData. То же самое работает в демонстрационном примере https://plnkr.co/edit/G5wUQjVZ0512RvqltIqm?p=preview, но при применении в моем локальном приложении он не показывает значения тиков на хаксисе. Какие-либо предложения?

app.controller('myController', ['$scope', '$uibModal', 'MyService', function ($scope, $uibModal, MyService) {
    $scope.chart = {};
    $scope.chart.type = "ColumnChart";
    $scope.chart.displayed = false;
    var dynamicTicks = [];
    $scope.chart.options = {
         focusTarget: 'category',
        "fill": 20,
        "displayExactValues": true,
        "isStacked": 'true',
         tooltip: {text: 'value',textStyle: {fontName: '"Arial"'}},
        hAxis: {
            titleTextStyle: {bold: 'true'},
            slantedText: false,
            ticks: dynamicTicks
        },
      };

    $scope.chart.view = {
        columns: [0, 1, 2, 3]
    };
     $scope.chart.data = {
        "cols": [
            {id: "label", label: "Label", type: "string"},
            {id: "count", label: "Count", type: "number"},
            {id: "pizza", label: "Pizza", type: "number"},
            {id: "softDrink", label: "SoftDrink", type: "number"},
        ]
    };

    $scope.loadMyChart = function () {
        MyService.getChartData().then(
            function (response) {
                $scope.myResponse= response;
                //check for error
                var count = 0;
                var pizza = 0;
                var softDrink = 0;
                var myRows = [];
                $scope.chart.data.rows = {};
                  var i = 0; var cData=[];
                angular.forEach($scope.myResponse, function (value, key) {
                    count = value.myData.count;
                    pizza = value.myData.pizza;
                    softDrink = value.myData.softDrnk;
                    hAxisValue = value.myData.title;

                   cData = {
                        "c": [{"v": i, "f": hAxisValue}, {"v": passsed},
                            {"v": failed},
                            {"v": notExecute}, {"v": key}]
                    };
                     myRows.push(cData); i++;
           });
                alert("cData.length " + i);
                //assign the haxis ticks values
                 for (var j = 0; j < i; j++) {
                    alert("in for" + j + "Series" + (j+1)); //This alert is being executed..
                    dynamicTicks.push({
                        v: j, /*cData[j].c[0].v - when this is used, it is showing the error angular.min.js:sourcemap:119 TypeError: Cannot read property 'c' of undefined and chart is not displayed*/
                        f: 'Series ' + (j + 1)
                    });
                }
               $scope.chart.data.rows = myRows;
           },  
    }
         $scope.loadMyChart();    
}]);

person user8401182    schedule 08.09.2017    source источник


Ответы (1)


необходимо присвоить галочки параметрам, после построения галочек...

            for (var j = 0; j < i; j++) {
                alert("in for" + j + "Series" + (j+1)); //This alert is being executed..
                dynamicTicks.push({
                    v: j, /*cData[j].c[0].v - when this is used, it is showing the error angular.min.js:sourcemap:119 TypeError: Cannot read property 'c' of undefined and chart is not displayed*/
                    f: 'Series ' + (j + 1)
                });
            }
            $scope.chart.options.hAxis.ticks = dynamicTicks;
person WhiteHat    schedule 08.09.2017
comment
+1 за предложение, но я все еще не мог видеть значения тиков на haxis. Когда у меня есть предупреждение для dynamicTicks, оно показывает предупреждение [object Object], [object Object]... @WhiteHat - person user8401182; 08.09.2017
comment
Извините, у меня нет. Я получаю значения из БД. Я почти воспроизвел свой код в plnkr.co/edit/G5wUQjVZ0512RvqltIqm?p=preview. но статическим способом. При использовании cData[j].c[0].v в dynamicTicks.push я получаю исключение angular.min.js:sourcemap:119 TypeError: Невозможно прочитать свойство 'c' неопределенного, поэтому заменено это со значением j, как показано выше.. @WhiteHat - person user8401182; 08.09.2017
comment
я заметил, что код, опубликованный в этом вопросе выше, имеет первый столбец как --› {id: "label", label: "Label", type: "string"} - для работы ticks первый столбец должен иметь тип 'number', 'date' и т. д. - как показано в этот предыдущий ответ - ticks не будет работать с дискретной ('string') осью - person WhiteHat; 08.09.2017
comment
Круто, спасибо, сработало :). Благодарим вас за помощь. @WhiteHat - person user8401182; 08.09.2017