как создать следующий идентификатор элемента при создании нового сообщения? - PullRequest
0 голосов
/ 20 сентября 2018

Как сгенерировать следующий идентификатор в посте, если в методе 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",
}

1 Ответ

0 голосов
/ 20 сентября 2018

Если вы используете lodash, используйте последний метод lodash:

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);

Предполагается, что следующим идентификатором будет идентификатор плюс один изпоследний объект в вашей коллекции.

Возможно, вам также понадобится ввести некоторый защитный код для установки идентификатора равным 1, если коллекция в настоящее время пуста.

Вы также можете просто использовать GUID или UUID.генератор, см. очень популярный модуль npm uuid .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...