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 中获得正确的对象属性。

相关内容

热门资讯

开挂辅助插件"wep... wepoker怎么增加运气是一款专注玩家量身打造的游戏记牌类型软件,在wepoker怎么增加运气这款...
辅助开挂!方片十三张外挂,聚星... 辅助开挂!方片十三张外挂,聚星ai辅助工具激活码(透视)开挂辅助工具(有人有挂);一、方片十三张外挂...
指导大家“aapoker透视怎... 指导大家“aapoker透视怎么用”开挂(透视)辅助神器(系统教程有挂教学);打开点击测试直接进入微...
开挂辅助软件"wep... 开挂辅助软件"wepoker软件辅助程序"开挂(透视)辅助插件(存在有挂)您好:wepoker软件辅...
开挂辅助!天天微友插件,wpk... 开挂辅助!天天微友插件,wpk私人辅助(透视)开挂辅助插件(有挂分享);1、这是跨平台的天天微友插件...
记者爆料“hh poker透视... 记者爆料“hh poker透视器下载”开挂(透视)辅助软件(插件教程证实有挂);无需打开直接搜索加(...
开挂辅助下载"aap... aapoker免费透视脚本是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户...
辅助开挂!填大坑小程序辅助器,... 辅助开挂!填大坑小程序辅助器,wpk软件是正规的吗(透视)开挂辅助软件(确实有挂);填大坑小程序辅助...
最新技巧“pokemmo辅助工... 最新技巧“pokemmo辅助工具”开挂(透视)辅助工具(靠谱教程有挂神器)1、下载安装好,进入游戏主...
开挂辅助安装"wep... 开挂辅助安装"wepoker怎么看底牌"开挂(透视)辅助工具(讲解有挂);亲,wepoker怎么看底...