Angular Tour of Heroes: проблемы с inMemory Web API

Я следую знаменитому туториалу по Angular, Tour of Heroes, но у меня не получается сделать один шаг.

На шестой курс, HTTP мы используем инструмент, созданный для имитации вызовов API к API.

Я думаю, что выполнил все шаги, вплоть до эта точка, где указано следующее:

Refresh the browser. The hero data should successfully load from the mock server.

Но я, возможно, что-то упустил: все HTTP-вызовы выдают заголовки http 500 с ошибкой Object(...) is not a function.

Я что-то упустил по поводу создания маршрута? Мне кажется странным, что API-интерфейс inMemory wep не нуждается в маршруте.

Мой тестовый код доступен здесь: https://github.com/MarcBrillault/tourOfHeroes/tree/StackOverflow

Если сервер возвращает 500, похоже, что ошибка может заключаться в коде на стороне сервера, а не в угловом коде на стороне клиента.

user184994 24.03.2018 22:53

У меня буквально НЕТ кода на стороне сервера, потому что, насколько я понимаю, inMemory Wep API предназначен для захвата этих вызовов и ответа на них (с этим файлом конфигурации: github.com/MarcBrillault/tourOfHeroes/blob/StackOverflow/src‌ /…)

Marc Brillault 24.03.2018 23:04
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
5
2
3 160
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот что мне пришлось сделать, чтобы запустить ваш код после его извлечения из репозитория.

Сначала перешел на [email protected]. Это означает изменение версии в package.json на ^0.5.4 и запуск npm i.

"angular-in-memory-web-api": "^0.5.4",

Я слышал кое-где, что у некоторых были проблемы с версией angular-in-memory-web-api 0.6.0, так что это был первый шаг, который я попробовал.

Согласно это, angular-in-memory-web-api версии 0.6.0 требует Угловой «^ 6.0.0-rc.0» и RxJS «^ 6.0.0-beta.1».

Итак, переход на более раннюю версию должен подтолкнуть вас к дальнейшему продвижению учебника. Не стесняйтесь переходить к версиям Angular и RxJS, указанным выше, когда будете готовы.

Затем мне нужно было внести эти изменения в hero.service.ts.

Добавлен этот импорт:

import { of } from 'rxjs/observable/of';

Измените это:

getHero(id: number): Observable<Hero> {
    return Observable.of({id: 1, name: 'test'});
}

к этому:

getHero(id: number): Observable<Hero> {
    return of({id: 1, name: 'test'});
}

После этого все заработало. Надеюсь, что это помогает вам.

Похоже, есть проблема с версией 0.6.0, я понизил до 0.5.4, и это решило мою проблему, спасибо

Terai 25.03.2018 20:31

@Torai Они привязали 0.6.0 к новой версии Angular 6.0.0-rc. Так что, если вы не используете эту версию, это не сработает. Рад, что это помогло тебе.

R. Richards 25.03.2018 20:33

ах хорошо, я этого не знал, спасибо за эту информацию

Terai 25.03.2018 22:25

Спасибо, я использовал Angular 5, и после установки правильной версии пакета и настройки dataEncapsulation: true в app.module.ts он загружал данные. Спасибо.

Nilesh Thakkar 14.04.2018 15:41

Другие вопросы по теме