Массив угловых привязок пользовательских объектов - прописные / строчные имена выдачи свойств из httpget - PullRequest
0 голосов
/ 12 июня 2019

Описание того, что я делаю.

Я пытаюсь отобразить таблицу моего пользовательского объекта, полученного с сервера.Я вызываю httpclient.get и приводю json к массиву моего пользовательского объекта (используя встроенную функциональность в httpclient) и в функции подписки, отправляющей собственное свойство.Затем я пытаюсь отобразить содержимое таблицы с помощью привязки и * ngFor.После раздела кода, показывающего проблему.Я использую Angular-8.

Код

Весь код упрощен, чтобы показать проблему.Для простоты я также перемещаю службу в компонент.

Класс простоты:

export class Person {
    public Name: string;
}

Мой компонент

import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Person } from '../models/person';

@Component({
  selector: 'app-test',
  templateUrl: './test.component.html',
  styleUrls: ['./test.component.css']
})
export class TestComponent implements OnInit {

  public persones: Array<Person>;

  constructor(
    private http: HttpClient
  ) { }

  ngOnInit() {
    this.getPeople();
  }

  private getPeople(): void {
    this.http.get<Array<Person>>('https://localhost:44368/api/person')
    .subscribe(      
      x => this.persones = x,
      () => console.log('error getting people')    
    );

  }
}

Часть HTML

<div>
  <table class="table">
    <thead class="thead-dark">
      <tr>
        <th>name lowercase</th>
        <th>Name Upercase</th>
      </tr>
    </thead>
    <tbody>
      <tr *ngFor='let item of this.persones'>
        <td>{{ item.name }}</td>
        <td>{{ item.Name }}</td>
      </tr>
    </tbody>
  </table>
</div>

Проблема

Проблема в том, что в html отображается таблица с item.name (строчные буквы) и item.Name (прописными буквами) не отображается, и мое собственное имущество имеет письмо с просьбой о недвижимости.Я исключаю, и это мой опыт, что при приведении к угловым объектам я должен использовать свойства этих пользовательских объектов.Я знаю, что эти строчные буквы исходят от json с сервера, но он должен приводить объекты к угловым значениям.

Я пытался выполнить приведение типа как или Observable, но это не помогло.

Также, когда я менял тип persnones и изменялТип получения Я получил тот же результат, например

public persones: string;
this.http.get<string> ...blabla...

Я все еще получил тот же результат, поэтому мое свойство persones обрабатывается как типичный объект json.

...