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

相关内容

热门资讯

透视好友房!wejoker辅助... 透视好友房!wejoker辅助器要钱玩吗,wepoker辅助器怎么弄(透视)软件教程(有挂方法)1)...
透视总结!wepoker养号规... 透视总结!wepoker养号规律,wepoker破解游戏盒子(透视)黑科技教程(有挂工具);1、进入...
透视肯定!wepoker辅助软... 透视肯定!wepoker辅助软件视频,黑侠破解wepoker(透视)黑科技教程(有挂规律)wepok...
透视了解!wepoker透视最... 透视了解!wepoker透视最简单三个步骤,wepoker辅助软件价格(透视)爆料教程(有挂揭秘)1...
透视有挂!wepoker辅助工... 透视有挂!wepoker辅助工具,wepoker免费脚本咨询(透视)实用技巧(有挂黑科技)进入游戏-...
透视游戏!wepoker透视脚... 透视游戏!wepoker透视脚本免费,wejoker辅助软件(透视)教你攻略(有挂规律)1、透视游戏...
透视透视!wepoker代打辅... 透视透视!wepoker代打辅助机器人,wejoker辅助软件视频(透视)总结教程(有挂辅助);透视...
透视私人局!wepoker轻量... 透视私人局!wepoker轻量版有透视吗,wepoker买钻石有用吗(透视)透明挂教程(有挂攻略);...
透视有挂!wepoker有用吗... 透视有挂!wepoker有用吗,wepoker怎么发冤家牌(透视)2025新版(有挂攻略)1、让任何...
透视代打!wepoker能不能... 透视代打!wepoker能不能透视,wepoker辅助器是真的吗(透视)切实教程(有挂方法)暗藏猫腻...