Angular的ngOnInit中,对象属性始终为undefined,即使对象有值。
创始人
2024-10-24 08:31:20
0

可能是由于组件在 Angular 生命周期中的某个时间点初始化了对象,但该对象的值仍未就绪。此外,还有可能是某些异步操作尚未完成,就在 ngOnInit 中对该对象进行了引用,从而导致该对象属性为 undefined。为了解决这个问题,可以将该对象放在服务中,并使用订阅器来获取异步数据,以确保对象属性在 ngOnInit 中具有正确的值。

下面是一个示例代码,显示了如何在服务中使用一个简单的 Observable,并在组件中订阅该 Observable。在该组件中,将订阅器放置在 ngOnInit 中,以确保在组件初始化完成时获取对象属性。

在服务中:

import { Injectable } from '@angular/core';
import { Observable, of } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class DataService {
  private data = { name: 'John', age: 35 };

  getData(): Observable {
    return of(this.data);
  }
}

在组件中:

import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service';

@Component({
  selector: 'app-example',
  template: `{{ objectProperty | json }}`,
})
export class ExampleComponent implements OnInit {
  objectProperty: any;

  constructor(private dataService: DataService) {}

  ngOnInit() {
    this.dataService.getData().subscribe(data => {
      this.objectProperty = data;
    });
  }
}

这个示例使用了一个服务来提供数据,并使用了 Angular 中的 Observable 和订阅器来获取对象属性。这样,即使在异步操作完成之前,该组件也可以确保在 ngOnInit 中获得正确的对象属性。

相关内容

热门资讯

推荐攻略!hhpoker德州有... 推荐攻略!hhpoker德州有挂吗,德普之星私人局透视,都是是真的有挂(证实有挂)1、起透看视 辅助...
科普!wepoker怎么提高运... 科普!wepoker怎么提高运气,拱趴大菠萝有什么挂,一贯是有挂(今日头条)1、不需要AI权限,帮助...
盘点一款!wepoker辅助软... 盘点一款!wepoker辅助软件视频,来玩app破解,都是真的有挂(有挂解惑)一、wepoker辅助...
推荐十款!hhpoker是真的... 推荐十款!hhpoker是真的假的,wepoker怎么提高运气,本来真的有挂(有挂详情)脚本下载中分...
分享个大家!德扑圈有透视吗,微... 分享个大家!德扑圈有透视吗,微扑克透视脚本,本来有挂(有挂总结)1)免费钻石:进一步探索免费脚本大陆...
我来教大家!wpk辅助,wep... 我来教大家!wpk辅助,wepoker透视有没有,好像是真的有挂(真是有挂)1、上手简单,内置详细流...
实测揭晓!hhpoker德州挂... 实测揭晓!hhpoker德州挂真的有吗,福建大菠萝万能辅助器,好像是有挂(讲解有挂)1、下载好正确养...
科普攻略!wpk插件辅助,we... 科普攻略!wpk插件辅助,wepoker透视功能下载,确实有挂(揭秘有挂)透视方法中分为三种模型:靠...
揭秘关于!pokemmo手机版... 揭秘关于!pokemmo手机版脚本免费,wpk私人局辅助是真的吗,好像存在有挂(确实有挂)1)有没有...
玩家必看!wepoker破解器... 玩家必看!wepoker破解器,pokemmo辅助官网,确实有挂(真是有挂)1、操作简单,无需手机版...