Javascript 角度5:从未分配给变量的受试者处可观察到

Javascript 角度5:从未分配给变量的受试者处可观察到,javascript,angular,typescript,observable,subject,Javascript,Angular,Typescript,Observable,Subject,我有一个service.ts文件,在我的角度组件之间传递一个可观测值,并且我有一个组件上的点击事件的结果被传递给下面的组件 我的问题是,我可以console.log我想存储在selectedContact变量(见下文)中的对象,但当我尝试将subscribe()响应分配给我的selectedContact变量,然后将其绑定到我的HTML时,它只显示为“[object object] 这是我的密码: import { Component, OnInit } from '@angular/core'

我有一个service.ts文件,在我的角度组件之间传递一个可观测值,并且我有一个组件上的点击事件的结果被传递给下面的组件

我的问题是,我可以
console.log
我想存储在
selectedContact
变量(见下文)中的对象,但当我尝试将
subscribe()
响应分配给我的
selectedContact
变量,然后将其绑定到我的HTML时,它只显示为“[object object]

这是我的密码:

import { Component, OnInit } from '@angular/core';
import { AppComponent } from '../app.component';
import { ApiService } from '../api.service';

@Component({
  selector: 'app-contact-details',
  templateUrl: './contact-details.component.html',
  styleUrls: ['./contact-details.component.scss']
})
export class ContactDetailsComponent implements OnInit {

  selectedContact: any[] = [];

  error: string;

  constructor(private _apiService: ApiService) { }

  ngOnInit() { this.showContact() }

  showContact() {
  this._apiService.newContactSubject.subscribe(
    data => this.selectedContact = data)
  }
}
当我运行此命令时:

  showContact() {
  this._apiService.newContactSubject.subscribe(
    data => console.log(data))
  }
  showContact() {
  this._apiService.newContactSubject.subscribe(
    data => this.selectedContact = data)
  }
我将正确的对象记录到控制台(来自其他组件的click事件)

但当我运行这个:

  showContact() {
  this._apiService.newContactSubject.subscribe(
    data => console.log(data))
  }
  showContact() {
  this._apiService.newContactSubject.subscribe(
    data => this.selectedContact = data)
  }
我得到
[Object Object]


我错过了什么?谢谢

我认为在html中,您可以将
这个。selectedContact
绑定到某个html组件。但是由于
this.selectedContact
是一个对象,因此必须像这样绑定到它的属性:
{{selectedContact.proppertyName}
我认为在html中,您将
this.selectedContact
绑定到某个html组件。但是由于
this.selectedContact
是一个对象,因此必须像这样绑定到它的属性:
{{selectedContact.proppertyName}
,如果这样做:

showContact() {
  this._apiService.newContactSubject.subscribe(
  data => this.selectedContact = JSON.stringify(data))
}
…你会看到你的对象,但它的格式不会那么好。您必须做更多的工作才能获得格式良好的输出。

如果您这样做:

showContact() {
  this._apiService.newContactSubject.subscribe(
  data => this.selectedContact = JSON.stringify(data))
}
…你会看到你的对象,但它的格式不会那么好。您必须做更多的工作才能获得格式良好的输出