如何在帖子中生成下一个ID,如果在add方法中仅添加“ title”和“ url”?
方法:
addPost(title:string, url:string):void {
const post = {
title:title,
url: url
};
this.collection.push(post);
}
我在其中显示帖子的模板:
<img [src]="pic.url" alt="test" class="img-responsive">
<p class="lead"><span>{{pic.id}}:</span>{{pic.title}}</p>
<div class="del">
<button class="btn btn-outline-danger (click)="removePost(pic.id)">Delete</button></div>
输入数据接口:
export interface Picture {
id?: number,
title: string,
url: string
}
我在阵列中的最新帖子:
{
id: 10,
title: "beatae et provident et ut vel",
url: "https://placekitten.com/200/200",
}
答案 0 :(得分:3)
如果您使用lodash,请使用lodash last方法:
addPost(title:string, url:string):void {
const post = {
title:title,
url: url,
id: _.last(this.collection).id + 1
};
this.collection.push(post);
否则,如果使用纯JavaScript:
addPost(title:string, url:string):void {
const post = {
title:title,
url: url,
id: this.collection[this.collection.length -1].id + 1
};
this.collection.push(post);
这假定下一个ID将是该ID加您集合中最后一个对象之一。
如果集合当前为空,您还可能需要引入一些防御性代码来将ID设置为1。
您还可以只使用GUID或UUID生成器,请参阅非常流行的npm uuid模块。