Dec*_*ius 4 arrays typescript angular
在Angular2教程的这一部分中,有一些功能可以向数组添加新项目.添加后,ID会自动递增,但我无法确定哪个进程正在执行此操作.
我知道Arrays.push()返回数组的长度,是自动插入Hero类中的id变量的长度吗?
在hero.services.ts中,有一段代码可以创建一个英雄:
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);
}
Run Code Online (Sandbox Code Playgroud)
在heroes.component.ts中有添加
add(name: string): void {
name = name.trim();
if (!name) { return; }
this.heroService.create(name)
.then(hero => {
this.heroes.push(hero);
this.selectedHero = null;
});
}
Run Code Online (Sandbox Code Playgroud)
小智 7
本教程使用angular 2 in-memory-web-api库.它正在处理正在对英雄网址发布的帖子.可以在第328行的文件中看到处理程序:
https://github.com/angular/in-memory-web-api/blob/master/in-memory-backend.service.js
在该处理程序内部,id通过调用genId函数生成,该函数的实现位于第257行:
InMemoryBackendService.prototype.genId = function (collection) {
// assumes numeric ids
var maxId = 0;
collection.reduce(function (prev, item) {
maxId = Math.max(maxId, typeof item.id === 'number' ? item.id : maxId);
}, null);
return maxId + 1;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1983 次 |
| 最近记录: |