Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 输入从角度2中的可观察对象返回的数据_Angular_Typescript_Observable - Fatal编程技术网

Angular 输入从角度2中的可观察对象返回的数据

Angular 输入从角度2中的可观察对象返回的数据,angular,typescript,observable,Angular,Typescript,Observable,因此,我正在尝试构建一个应用程序,它将获取温度和湿度数据,并在应用程序中输出这些值。现在,我可以从data.json中的模拟数据中获取数据,并将该数据输出到HTML模板中 但是,我想做的是在给定的时间取值,并根据这些值输出不同的值,即取华氏值并计算摄氏度,或者计算可变压力差(VPD),它根据温度和湿度输出值 我的问题是如何获取这些值,以便将它们插入公式中。它使用{…}输出结果很好,但是我不知道如何加/减/除等这些值 服务: getData(): Observable<TempRh[]&

因此,我正在尝试构建一个应用程序,它将获取温度和湿度数据,并在应用程序中输出这些值。现在,我可以从data.json中的模拟数据中获取数据,并将该数据输出到HTML模板中

但是,我想做的是在给定的时间取值,并根据这些值输出不同的值,即取华氏值并计算摄氏度,或者计算可变压力差(VPD),它根据温度和湿度输出值

我的问题是如何获取这些值,以便将它们插入公式中。它使用{…}输出结果很好,但是我不知道如何加/减/除等这些值

服务:

  getData(): Observable<TempRh[]> {
   return this._http.get('./assets/data.json')
  .map((response: Response) => response.json())
  .do(data => console.log("All: " + JSON.stringify(data)))
  .catch(this.handleError);}
模板:

  <ul>
    <li *ngFor="let tempHum of tempHum">{{tempHum.temperature}} , 
    {{tempHum.humidity}}</li></ul>

您可以执行以下操作。在组件内部,您可以声明一个函数和一个新数组:

modifiedTempHum: Array<any>;

private transformTemp(tempHum) {
  for (let item of tempHum) {
    const temperature = item.temperature;
    const humidity = item.humidity;

    // here you do what you want with your variables

    modifiedTempHum.push({ Temperature: temperature, Humidity: humidity });
    }
}

谢谢你的帮助。我可以得到我想要打印到控制台的计算结果,但是我无法将结果推送到空数组。新数据没有在HTML中输出<代码>代码>>>>计算Pd(tempHum){for(让tempHum的项){const temperature=item.temperature;const湿度=item.湿度;const摄氏=(temperature-32)/1.8;const variablepression=(100-湿度)*2486;this.VPD.push(variablepression);console.log(variablepression);}
code
    VPDVPD:{{VPD?.variablepression}
      这是因为您没有像我给出的示例那样推送对象,相反,您的数组只有数字,它们是您的可变压力。这应该可以工作
        VPDVPD:{VPD}
      。请注意,避免对迭代的迭代器和集合使用相同的名称。我想我遵循了您的说法,但我仍然得到数组长度的
        值,但没有输出值,即“VPD:”。只需确保按前面描述的方法推送此.VPD.push(variablepression)
      而且你的收藏有价值。它对我来说毫无问题。
      [
      {"date": "2012-05-01", "temperature": 70, "humidity": 70},
      {"date": "2012-05-02", "temperature": 74, "humidity": 72},
      {"date": "2012-05-03", "temperature": 79, "humidity": 65},
      ...]
      
      modifiedTempHum: Array<any>;
      
      private transformTemp(tempHum) {
        for (let item of tempHum) {
          const temperature = item.temperature;
          const humidity = item.humidity;
      
          // here you do what you want with your variables
      
          modifiedTempHum.push({ Temperature: temperature, Humidity: humidity });
          }
      }
      
      <ul>
          <li *ngFor="let tempHum of modifiedTempHum">{{tempHum.Temperature}} , 
          {{tempHum.Humidity}}</li></ul>
      
      ngOnInit(): any {
          this._dataService.getData()
          .subscribe(
          tempHum => this.transformTemp(tempHum),
        );}