Javascript hero.service.ts create()如何将id号添加到阵列(英雄之旅)
我正在做《英雄之旅》的角度教程,但我没有被卡住,我只是有个问题 hero.service.ts中的create()函数是如何将id号添加到JSON数组的?我似乎找不到它的设置位置,而且即使在删除和添加之后,它似乎也知道如何对列表id号进行编号Javascript hero.service.ts create()如何将id号添加到阵列(英雄之旅),javascript,json,angular,rxjs,Javascript,Json,Angular,Rxjs,我正在做《英雄之旅》的角度教程,但我没有被卡住,我只是有个问题 hero.service.ts中的create()函数是如何将id号添加到JSON数组的?我似乎找不到它的设置位置,而且即使在删除和添加之后,它似乎也知道如何对列表id号进行编号 create(name: string): Promise<Hero> { return this.http .post(this.heroesUrl, JSON.stringify({name: name}),
create(name: string): Promise<Hero> {
return this.http
.post(this.heroesUrl, JSON.stringify({name: name}), {headers: this.headers})
.toPromise()
.then(res => res.json().data)
.catch(this.handleError)
}
create(名称:string):承诺{
返回此文件。http
.post(this.heroesUrl,JSON.stringify({name:name}),{headers:this.headers})
.toPromise()
.then(res=>res.json().data)
.接住(这个.把手错误)
}
只是有点困惑,这将有助于我更好地理解这个函数
谢谢,,
Bryan这是英雄之旅应用程序用于存储英雄实体的
InMemoryDataService
类提供的。整个服务的来源如下:
如果选中post
方法,将看到以下代码块:
if (!item.id) {
item.id = id || this.genId(collection);
}
其中genId(…)
是:
protected genId(collection: any): any {
// assumes numeric ids
let maxId = 0;
collection.reduce((prev: any, item: any) => {
maxId = Math.max(maxId, typeof item.id === 'number' ? item.id : maxId);
}, null);
return maxId + 1;
}
从本质上说,它创建了一个新的数值,该数值是先前已知的最大id值的增量。哇,多谢了,我花了很多时间试图弄清楚它,然后我就应该有了。我知道我写的代码里没有。这是一段很好的代码供将来使用。很高兴我能帮上忙。不要忘记:如果这是正确的解决方案,你可以接受这个答案。在这里阅读更多关于投票/接受答案的信息:再次感谢@Andras