У меня есть служба, которая возвращает объект JSON, и я хочу назначить эти данные свойству интерфейса. Вот следующий код, код component.ts здесь был урезан, чтобы содержать только соответствующие части.
Файл Service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class ApiService {
constructor(private httpClient: HttpClient) { }
public getFanSpeed(){
return this.httpClient.get('http://localhost:4000/auth/get-fan-speed');
}
}
Файл Component.ts
import { Component, OnInit } from '@angular/core';
import { ApiService } from '../../api.service';
interface CardSettings {
content: string;
}
@Component({...})
export class DashboardComponent implements OnInit {
fanSpeed: string;
ngOnInit() {
this.apiService.getFanSpeed().subscribe((response)=>{
this.fanSpeed = response['fanSpeedVar'];
});
}
fanSpeedCard: CardSettings = {
content: this.fanSpeed
};
constructor(private apiService: ApiService) {}
}
Я помещаю console.log в функцию ngOnInit (), и я вижу правильное значение, но по какой-то причине оно просто не назначается должным образом свойству интерфейса, поэтому в пользовательском интерфейсе просто пусто. Любое руководство будет оценено, спасибо.
fanSpeedCard
запускается мгновенно. Но для разрешения вызова API потребуется время. Вы можете присвоить значениеfanSpeedCard
внутри блока подписки - person bharat1226   schedule 22.06.2020