我正在使用angualr天气应用程序。 我为此创建了天气课
export class Weather{
city: string;
condition: string;
icon: string;
temp: number;
}
我向天气请求的http api请求。
我已经导入了Weather
类,并希望根据api调用中的json对象分配字段。
像这样。
weather:Weather;
getWeather():void{
this.weatherserv.getWeather().subscribe(data=>{
this.weather.city=data.location.name;
this.weather.condition=data.condition.text;
this.weather.condition=data.condition.icon;
this.weather.temp=data.current.temp_c;
})
}
我遇到的错误是:
Error: Cannot set property 'city' of undefined
答案 0 :(得分:2)
您应该尝试:
weather= new Weather();
或者就您而言,最好使用接口:
export interface Weather{
city?: string;
condition?: string;
icon?: string;
temp?: number;
}
weather:Weather = {};
here我解释了为什么在您的情况下使用接口更好。
答案 1 :(得分:2)
尝试一下:
weather: Weather = new Weather();
getWeather():void{
this.weatherserv.getWeather().subscribe(data=>{
this.weather.city=data.location.name;
this.weather.condition=data.condition.text;
this.weather.condition=data.condition.icon;
this.weather.temp=data.current.temp_c;
})
}
答案 2 :(得分:0)
您应该从您的类中创建一个新对象,然后为其设置值。
答案 3 :(得分:0)