Создание точек чарджиса из внешнего json в angualrjs - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь понять правильный angularjs способ создания точек данных для chartjs с использованием моего пользовательского API, созданного в mongoose.Я прочитал в основном все сообщения, относящиеся к проблеме, и только одно предложение ниже не дало мне ошибок, но массив пуст.

Я пытаюсь получить «X: #» из моего объекта json, сохранить его вмассив и сгенерировать из него точки диаграммы.

уже пробовал: предложение angular.foreach.

для цикла в массив с использованием предложения .length.

$. getJson, $ scope.array = [];передать объект в массив в предложении функции ajax.

home.js Контроллер:

app.controller('home', ['$scope', 'dashboard', 'database', function ($scope, dashboard, database) {

$scope.title = 'The Dashboard Project: Guest';//Page title
dashboard.title = $scope.title; //send to route.js


database.readData().then(function (object) {
    $scope.object = object.data;
    console.log($scope.object);
})

/* My attempt to pass json value into array
$scope.chartjsData = [];
angular.forEach($scope.object, function (value) {
    $scope.chartjsData.push(value.visit);
});
console.log($scope.chartjsData); //Array shows up empty
*/

//Charts.js with angularjs
$scope.labels = ["January", "February", "March", "April", "May", "June", "July"];
$scope.series = ['Series A', 'Series B'];
$scope.data = //$scope.chartjsData;  //empty json array

[//replace this with above custom json array
    [65, 59, 80, 81, 56, 55, 40],
    [28, 48, 40, 19, 86, 27, 90]
]; 
$scope.onClick = function (points, evt) {
    console.log(points, evt);
};
$scope.datasetOverride = [{ yAxisID: 'y-axis-1' }, { yAxisID: 'y-axis-2' 
}];
$scope.options = {
    scales: {
        yAxes: [
            {
                id: 'y-axis-1',
                type: 'linear',
                display: true,
                position: 'left'
            },
            {
                id: 'y-axis-2',
                type: 'linear',
                display: false,
                position: 'right'
            }
        ]
    }
};

}]);

Служба Database.js:

app.service('database', ['$http', function ($http) {

this.readData = function () {
    return $http({
        method: 'GET',
        url: 'http://localhost:4000/products/objects'
    }).then(function (response) {
        return response;
    })
}/*

}]);

Model.js Mongoose Api:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

let ProductSchema = new Schema({

//Accounts
firstname: { type: String, trim: '', max: 100 },
lastname: { type: String, trim: '', max: 100 },
device: { type: String },

x: { type: Number }, //get data for chart
y: { type: Date, default: () => { return new Date() } }, //get data for chart
});


module.exports = mongoose.model('Product', ProductSchema);

chartjs - это двухстрочный график.

Ожидаемый X: числовой массив.

Ожидаемый Y: динамический месяц / день из массива.Создайте метки и точки из массивов X & Y.

значение Y не нужно решать для этого вопроса, только X, я все еще пытаюсь исправить временную метку, чтобы она правильно отображалась в моей базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...