Описание того, что я делаю.
Я пытаюсь отобразить таблицу моего пользовательского объекта, полученного с сервера.Я вызываю 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.