Для чего предназначена InMemoryDbService? угловой 6 - angular6


1

Я пытаюсь получить больше одного объекта из службы данных в памяти, и я не могу это сделать, просто интересно, можно ли даже получить? или я просто могу иметь одну тестовую информацию без возможности ее расширения, она выглядит так:

      import { InMemoryDbService } from angular-in-memory-web-api;

export class InMemoryDataService implements InMemoryDbService {
    createDb() {
        const groups = [
            {id: 0, name: Mr. Nice},
            {id: 12, name: Narco},
            {id: 13, name: Bombasto},
            {id: 14, name: Celeritas},
            {id: 15, name: Magneta},
            {id: 16, name: RubberMan},
            {id: 17, name: Dynama},
            {id: 18, name: Dr IQ},
            {id: 19, name: Magma},
            {id: 20, name: Tornado},
        ];
        return {groups}
    }
}
Источник
  •  46
  •  1
  • 4 мар 2020 2020-03-04 04:46:53

1 ответ

1

Если вы хотите получить весь массив из InMemoryDbService, вам нужно отправить HTTP-запрос на адрес: "api/groups".

Если вам нужен только конкретный объект, возвращаемый из списка, вам нужно отправить запрос http-адреса на адрес: "api/groups/id", где id - одно из чисел, определенных в ваших группах const.

Если вы хотите добавить еще одну коллекцию в InMemoryDbService, вы можете просто определить новый массив констант, а затем добавить его в возвращаемую часть метода createDb следующим образом:

const itemList = [
  {id: 1, name: "First item"},
  {id: 2, name: "Second item"},
];

return {
    groups: groups,
    items: itemList
}

Обратите внимание, что конечными точками теперь являются: "api/groups", "api/groups/id", "api/items" и "api/items/id", где id - одно из чисел, определенных в ваших массивах const.

Вам также необходимо зарегистрировать InMemoryWebApiModule в массиве import вашего приложения.module.ts:

imports: [
  InMemoryWebApiModule.forRoot(InMemoryDbService)
],