У меня есть следующий компонент, который получает ответ от моей службы, который выполняет вызов REST, следующим образом:
api.service
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { BehaviorSubject, ReplaySubject } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class ApiService {
url = 'api address';
constructor(private http: HttpClient) { }
getContent(){
return this.http.get(this.url);
}
}
Ответ вернемся следующим образом:
{
name: "intro1",
course-content: "this is the content area"
}
content.component.ts
import { Component, OnInit } from '@angular/core';
import { ApiService } from '../api.service';
import { switchMap, map } from 'rxjs/operators';
@Component({
selector: 'app-content',
templateUrl: './content.component.html',
styleUrls: ['./content.component.css']
})
export class ContentComponent implements OnInit {
content;
constructor(private api: ApiService) { }
ngOnInit(){
this.api.getContent().subscribe((res : any[]) =>
{console.log(res[0])
this.content = res[0];
)}}
Примечание: я тяну только один элемент [0] из ответа, но я не уверен, как правильно отображать данные в представлении content.component. Строка регистрируется в консоли, как требуется, и содержимое отображается в представлении, но я все еще получаю следующую ошибку:
cannot read property 'course-content' of undefined.
In 'old' AngularJS Я мог бы сослаться на это в представлении со следующим:
<p>{{content['course-content']}}</p>
, но я не могу сделать то же самое в 'new' Angular .