如何在angular中实例化导入的类

时间:2019-05-30 09:39:15

标签: angular api

我正在使用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

4 个答案:

答案 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)

测试遵循代码:

weather: Weather = new Weather;

此处:the stackblitz for it