首页 > 解决方案 > 如何从 observable 中获取数据?

问题描述

我试图从请求中获取一些数据。我有一个可观察的函数,可以给我内部的数据.subscribe,但是每当我尝试在外部(在类中定义的变量中)获取该数据时,它都会返回我undefined,这很烦人

组件.ts:

import { ProjectService } from '../services/project.service';

@Component({
  selector: 'app-project-loader',
  templateUrl: './project-loader.component.html',
  styleUrls: ['./project-loader.component.css']
})
export class ProjectLoaderComponent implements OnInit {
  projects:any;
  constructor(private projectService: ProjectService) { }

  ngOnInit(): void {
   this.getProjects(); 
   }
   getProjects(){
     this.projectService.getProjects().subscribe(data=>{
       this.projects= data;

     })

   }
 }

组件.html:

{{projects[0].id}}

该 html 目前仅用于测试 porpouses,因此它只有 1 行。仅供参考,可观察函数中返回的数据是一个 json 数组。

数组示例:

    {
        "id": "REDACTED",
        "projectName": "REDACTED",
        "projectId": "REDACTED"
    },
    {
        "id": "REDACTED",
        "projectName": "REDACTED",
        "projectId": "REDACTED"
    }
]

(已编辑的是来自私人数据库的字符串:P)

标签: angularjstypescript

解决方案


我自己解决了。我只需要使用 a*ngFor来封装这样的项目:

<div *ngFor=" let project of projects">
<button class="list-group-item list-group-item-action" (click)="openProject(project.id)" >{{project.projectName}}</button>
</div>

推荐阅读