Я пытаюсь понять правильный 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, я все еще пытаюсь исправить временную метку, чтобы она правильно отображалась в моей базе данных.