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

相关内容

热门资讯

透视安装"wepok... 透视安装"wepoker辅助器安装包定制"详细辅助介绍教程(总是是真的有挂)是一款可以让一直输的玩家...
透视能赢"hhpok... 透视能赢"hhpoker辅助软件是真的么"详细辅助插件教程(从来有挂)准备好在hhpoker辅助软件...
透视有挂"wepok... 透视有挂"wepoker透视脚本免费app"详细辅助黑科技教程(一向真的是有挂)准备好在wepoke...
透视黑科技"大菠萝免... 透视黑科技"大菠萝免费辅助器"详细辅助细节方法(其实真的有挂)准备好在大菠萝免费辅助器 ia的高塔上...
透视攻略"wepok... 透视攻略"wepoker软件辅助程序"详细辅助解密教程(总是是有挂)1、玩家可以在wepoker软件...
透视挂"aapoke... 此外,数据分析德州(aapoker辅助软件合法吗)辅助神器app还具备辅助透视行为开挂功能,通过对客...
辅助透视"wejok... 辅助透视"wejoker辅助软件视频"详细辅助必备教程(好像有挂);人气非常高,ai更新快且高清可以...
透视透视"aapok... 透视透视"aapoker怎么设置提高好牌几率"详细辅助2025新版(从来存在有挂);原来确实真的有挂...
透视模拟器"hhpo... 透视模拟器"hhpoker免费透视脚本"详细辅助规律教程(果然是真的有挂);1.hhpoker免费透...
透视脚本"sohoo... 透视脚本"sohoopoker辅助"详细辅助揭秘攻略(原本是真的有挂);1.sohoopoker辅助...