gpt4 book ai didi

javascript - Angular 2从url获取json数据

转载 作者:行者123 更新时间:2023-11-28 04:51:27 25 4
gpt4 key购买 nike

let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let ep = './data.json';
this.events = this.http
.get(ep, { headers: headers })
.map(res => res.json())
.map(({results}: { results: Data[] }) => {
return results.map((data: Data) => {
return {
title: data.title,
start: new Date(data.from),
colors.yellow,
};
});
});

这是我在 Angular 2 中的代码。我想从 JSON 文件中获取数据并将其显示在 Angular-calendar 中。 Here is angular-calendar Demo : 我怎样才能做到这一点?

最佳答案

您可以创建包含日历数据的服务。

getList(): any
{

var date = new Date( '2017-01-12' );
var date2 = new Date( '2017-03-17' );

return (
[

{ title: 'Beauty And The Beast', start: date2, color: { primary: '#e3bc08', secondary: '#FDF1BA' } },

{ title: 'La La Land', start: date, color: { primary: '#e3bc08', secondary: '#FDF1BA' } }

]
)
}

然后您必须从模板中删除异步管道。

之前:

[events]="(events | async ) || []

之后:

[events]="(events) || []

然后调用组件中的服务:

fetchEvents()
{

this.events= this._data_Service.getList()

}
<小时/>

2。要使用 Http 获取 data.json 文件,您需要将 JSON 文件放在 Assets 文件夹中:./assets/data.jsom,所以它可以被应用程序访问:localhost:8080/data.json

然后您只需发出一个 get 请求即可。

fetchEvents(): void {


this.events = this.http
.get('../../assets/data.json') // the path may vary depending
// on your directory structure.
.map(res => res.json())
.map((results) => { // this might be different depending on
// your json and type definition.

return results.map((data: Data) => {

console.log({title: data.title,
start: new Date(data.from),
color: colors.yellow})

return {
title: data.title,
start: new Date(data.from),
color: colors.yellow,data
};
});
});


}// fetchEvents

这是我使用的 JSON:

[

{"title":"La La Land","from":1490475722305},
{"title":"Beauty And The Beast","from":1490475722305}

]

最后,您可以在组件中包含类型定义:

interface Data {

title: string;
from:string;

}

interface DataEvent extends CalendarEvent {
data: Data;

}

关于javascript - Angular 2从url获取json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42877691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com