Angular 2 читает JSON через HTTP

0

Я новичок в Angular 2 и javascript в целом, и я пытаюсь прочитать JSON через HTTP-запрос. Я следую этому руководству: https://medium.com/google-developer-experts/angular-2-introduction-to-new-http-module-1278499db2a0

Я пытаюсь запустить этот пример с помощью Electron.

Мне пришлось внести некоторые незначительные изменения в исходный код, чтобы не получить ошибок при запуске npm run build например change:

<my-person *ng-for="#person of people"

в

<my-person *ngFor="let person of people"

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

И здесь возникает проблема; на самом деле ничего не видно, и я понятия не имею, почему нет. Если я активирую Chrome DevTools с добавлением win.openDevTools(); на main.js Я могу открыть консоль и увидеть, что конструктор класса App печатает "завершен" для консоли, поэтому кажется, что все идет прямо в фоновом режиме, но по какой-то причине ничего не появляется в представлении.

Изображение 174551

Если я изменю

export class App {
  people : any;
  constructor(peopleService:PeopleService) {
    peopleService.people
        .subscribe(
            people => this.people = people,
            error => console.error('Error: ' + error),
            () => console.log('completed!')
        );
  }

в

..
() => console.log('this.people')
..

Я вижу объект, напечатанный в консоли, содержащий все три человека, которые определены в people.json как это

[
  {"id": 1, "name": "Brad"},
  {"id": 2, "name": "Jules"},
  {"id": 3, "name": "Jeff"}
]

Вы можете увидеть весь проект в моем GitHub здесь: https://github.com/MikPak/ngNews

Пожалуйста, помогите мне с этим, чтобы все началось. Позже я хотел бы получить JSON-данные (новости) с внешнего сервера и отобразить их в представлении, но я должен сначала решить эту проблему.

  • 0
    запуск вашего проекта без электронов работает нормально. так что это о конфигурации электрона, я думаю.
  • 0
    Спасибо, что сообщили мне об этом, но я получил совет по работе с @Apostolos :)
Показать ещё 2 комментария
Теги:
http
electron

1 ответ

0
Лучший ответ

Добавить

<script src="../node_modules/es6-shim/es6-shim.min.js"></script>
<script src="../node_modules/zone.js/dist/zone.js"></script>
<script src="../node_modules/reflect-metadata/Reflect.js"></script>

в файл app/index.html и удалить

  'rxjs',
  'reflect-metadata',

из вашей записи angular2 в файле webpack.config.js.

  • 0
    Спасибо! Работает как шарм сейчас. Не могли бы вы также объяснить, что на самом деле делают эти сценарии? Я прочитал немного о каждом из этих сценариев в Google, но я не совсем понял, почему, добавляя эти вещи, он заработал и почему он не работал, прежде чем добавлять их и удалять 2 строки из webpack.config.js.
  • 0
    это js по умолчанию, который должен иметь даже самое маленькое приложение angular 2 в соответствии с руководством angular. es6 - это совместимые с ECMAScript 6. zone.js предназначен для создания зон (контексты могут показаться вам более знакомыми) и отражать относится к tc39.github.io/ecma262/#sec-reflection , я думаю. Может быть, вам не нужно удалять эти строки, не пробовал с этими 2 линиями на самом деле!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню