当前位置: 首页 > 知识库问答 >
问题:

以角度4显示订阅数据

申辉
2023-03-14

我需要帮助在Angular 4中显示来自api的subscribe的输出。既然我写了数据,我该怎么做呢。数据数据,但它表示类型对象上不存在属性数据。如何在浏览器中输出?下面是我的代码和api图片

import { Component, OnInit } from '@angular/core';
import { NewsService } from '../news.service';

@Component({
  selector: 'app-news-list',
  templateUrl: './news-list.component.html',
  styleUrls: ['./news-list.component.css']
})
export class NewsListComponent implements OnInit {

  constructor(private newsService: NewsService) { }

  ngOnInit() {

    this.newsService.getNews()
      .subscribe(
        data => {
          alert("News Success");
          console.log(data);
        },
        error => {
          alert("ERROR");
        });
  }
}

共有3个答案

邢晗日
2023-03-14

你需要这样做

ngOnInit() {
 this.newsService.getNews()
  .subscribe(
    data => {
      data = data.json();
      console.log(data.data);
    },
    error => {
      alert("ERROR");
    });

}

数据。json()部分很重要,它将响应转换为正确的json,以便访问其数据。现在可以像这样将其分配给实例变量

这个。myArrayData=数据。数据

subscribe()方法中,然后在模板中

<div *ngFor="let data of myArrayData">
  <!-- do whatever with the data properties -->
</div>
澹台承
2023-03-14

您的数据是数组类型,

创建任意类型的变量

myData : any;

并将数据分配给myData,

this.newsService
    .getNews()
    .subscribe(
        data => {
           this.myData = data.data;
        },
        error => {
          alert("ERROR");
        }
    );

您可以使用ngFor在数组上迭代并在HTML中显示

<li *ngFor="let item of myData">
     {{item}}
</li>
淳于涛
2023-03-14

在组件中创建属性

myData: any[] = [];

在你的订阅功能中

import { Component, OnInit } from '@angular/core';
import { NewsService } from '../news.service';

@Component({
  selector: 'app-news-list',
  templateUrl: './news-list.component.html',
  styleUrls: ['./news-list.component.css']
})
export class NewsListComponent implements OnInit {

  constructor(private newsService: NewsService) { }

  ngOnInit() {

    this.newsService.getNews()
      .subscribe(
        (res: any) => {
          alert("News Success");
          this.myData = res.data; 
          // Where you find the array res.data or res.data.data
          console.log('res is ', res.data);
        },
        error => {
          alert("ERROR");
        });
      }
    }

在你的模板中

1) 查看JSON选项

<pre>{{myData | json}}</pre>

2) 选择循环,如果你得到了数组

<div *ngFor="let d of myData">
    {{d}}
</div>
 类似资料:
  • 我正在学习Angular 5+,最近来到主题/订阅部分,我看到很多教程都希望以特定的方式使用订阅: 在组件中声明订阅 通过服务的主题或ngrx/store在ngOnInit中订阅 在ngondestroy中取消订阅 null

  • 好的,我有这个 我一直在试着把它显示在视图中。 因为它不是一个json数组,所以angular只是使用 null 编辑 下面是完整的json

  • 我目前正在尝试使用Simplepie将多个提要显示为单个提要。我有饲料在一个数组和显示罚款: 这显示: 我的问题是如何在数组中循环并仅访问每个提要中最近的文章/文章,以便每个提要中只有第一篇文章/文章显示如下: 我想完成的最隐秘的事情可能是这个答案: SimplePie多个进纸随机顺序 但我不希望它是随机的。我的感觉是,排序项目是这样做的,但我需要一些方向。 任何帮助都很感激。 谢谢你抽出时间。

  • 我必须从两个订阅服务器获取数据,但我总是获取第一个订阅服务器的数据。 我有一个数据共享服务: 在离开搜索组件之前,我调用update方法。 现在,我在results组件上。我得到的共享数据如下: 我的问题是:我需要共享数据来订阅另一个可观察的数据。首先,我构造了一个物体乘坐,在我调用搜索方法之后 问题是我总是从数据服务获取数据,而不是从api调用。api工作导致我在存储中拦截结果,而不是在组件中。

  • 我一直在寻找一种方法,通过新的的将查询参数传递到API调用中,但尚未找到解决方案。使用旧的模块,您可以编写如下内容。 这将导致对以下URL的API调用: 但是,新的方法没有属性,所以我想知道在哪里传递查询参数?

  • 我如何转换这个:新缓冲区(client_id':'client_secret). toString('base64') 到角度? 我需要去访问令牌,但不起作用。 医生:https://developer.spotify.com/web-api/authorization-guide/