Api-проект в ASP
[Route("api/[controller]")]
public class SampleDataController : Controller
{
...
[HttpGet("[action]")]
public Array GetGraphData()
{
var tsData = timeFloatService_.GetLatestDataRecords(4790, DataRecordStatus.Live, DataRecordAbnormal.Normal, 1).Get();
object[][] result = tsData.Select(x => new object[] { x.Index.ToString("yyyy/MM/dd HH:mm:ss"), x.Value }).Take(10).ToArray();
return result;
}
![enter image description here](https://i.stack.imgur.com/KPS9x.jpg)
, полученный в вызывающем угловом проекте:
<code>import { Component, OnInit, Inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css']
})
export class TestComponent implements OnInit {
private forecasts: any;
constructor(http: HttpClient, @Inject('BASE_URL') baseUrl: string) {
http.get<any[]>(baseUrl + 'api/SampleData/GetGraphData').subscribe(result => {
this.forecasts = result;
}, error => console.error(error));
}
<p>
test works!
</p>
<pre>{{forecasts|json}}
![enter image description here](https://i.stack.imgur.com/vvoyO.jpg)
Массив данных получен, но Date является строкой, а не Date (), поэтому диаграмма Dygraph не загружена!
![enter image description here](https://i.stack.imgur.com/9SYSM.jpg)
Диаграммы настроены правильно (протестировано с данными CSV).
Даже если я передам дату в качестве даты и времени, она будет преобразованав строку!Поэтому мой вопрос заключается в том, как преобразовать первый элемент каждого массива в Date () внутри проекта Angular.Я не могу найти какую-либо помощь по этому вопросу!
См. Документы: http://dygraphs.com/data.html#array
КОНСТРУКТОР ПОСЛЕ ИЗМЕНЕНИЙ:
constructor(http: HttpClient, @Inject('BASE_URL') baseUrl: string) {
http.get<any[]>(baseUrl + 'api/SampleData/GetGraphData').subscribe(result => {
this.forecasts = from(result).pipe(map(item => [new Date(item[0]), item[1]]));
}, error => console.error(error));
Выше массива изменяется на следующий
{
"_isScalar": false,
"source": {
"_isScalar": false,
"array": [
[
"2013/01/01 00:00:00",
58096
],
[
"2013/01/02 00:00:00",
50893
],
К сожалению, это не сработает!(Если я не сделал ошибку.)
Необходимо изменить строку на Date на странице DOM / Html, так как измененный массив все еще отображал дату в виде строки!