Angular 7 在 HTTP 回调中无法读取公共变量。
创始人
2024-10-16 20:30:32
0

在 Angular 7 中,HTTP 回调是异步执行的,因此无法直接读取外部的公共变量。解决这个问题的一种方法是使用 rxjsSubjectBehaviorSubject

下面是一个使用 BehaviorSubject 的示例代码:

  1. 创建一个名为 data.service.ts 的服务文件,并导入 BehaviorSubjectObservable
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class DataService {
  private myData = new BehaviorSubject(null);

  constructor() { }

  getData(): Observable {
    return this.myData.asObservable();
  }

  updateData(data: any): void {
    this.myData.next(data);
  }
}
  1. 在需要将数据从 HTTP 回调传递给其他组件的组件中,导入并注入 DataService,并在回调中调用 updateData() 方法更新数据:
import { Component } from '@angular/core';
import { DataService } from './data.service';

@Component({
  selector: 'app-my-component',
  template: `...`,
  styleUrls: ['./my-component.component.css']
})
export class MyComponent {
  constructor(private dataService: DataService) { }

  getDataFromHttp(): void {
    // 假设这里是一个 HTTP 请求
    this.http.get('https://api.example.com/data').subscribe(response => {
      // 处理 HTTP 回调的响应数据
      const data = response.data;

      // 将数据传递给其他组件
      this.dataService.updateData(data);
    });
  }
}
  1. 在其他组件中,导入并注入 DataService,并通过订阅 getData() 方法来获取更新的数据:
import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service';

@Component({
  selector: 'app-another-component',
  template: `...`,
  styleUrls: ['./another-component.component.css']
})
export class AnotherComponent implements OnInit {
  data: any;

  constructor(private dataService: DataService) { }

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

通过这种方法,您可以在 HTTP 回调中更新数据,并在其他组件中订阅更新的数据。这样就可以解决 Angular 7 中无法读取公共变量的问题。

相关内容

热门资讯

一分钟插件!微乐小程序黑科技,... 一分钟插件!微乐小程序黑科技,手机微乐小程序游戏破解器(开挂)都是是有挂(2026)一、微乐小程序黑...
透视ai!微乐小程序免费黑科技... 透视ai!微乐小程序免费黑科技,微信小程序微乐安徽辅助苹果(透视)果然存在有挂(哔哩哔哩)1、完成微...
第4分钟安装!微乐小程序免费黑... 第4分钟安装!微乐小程序免费黑科技,微信微乐辅助(开挂)其实真的有挂(2026)1、每一步都需要思考...
透视中牌率!微乐小程序免费黑科... 透视中牌率!微乐小程序免费黑科技,小程序微乐陕西挖坑辅助器(透视)本来存在有挂(哔哩哔哩)1、小程序...
第六分钟安装!微乐小程序黑科技... 第六分钟安装!微乐小程序黑科技,收i就微乐小程序游戏破解器(开挂)果然存在有挂(2026)一、微乐小...
软件辅助挂!微乐小程序黑科技,... 软件辅助挂!微乐小程序黑科技,微信小程序微乐安徽辅助器(透视)果然是有挂(哔哩哔哩)一、微信小程序微...
三分钟安装!微乐小程序黑科技,... 三分钟安装!微乐小程序黑科技,微乐自建房脚本如何下载(开挂)原来是有挂(2026)微乐小程序黑科技是...
2026版总结!微乐小程序免费... 2026版总结!微乐小程序免费黑科技,微乐小程序辅助(透视)果然是真的挂(哔哩哔哩)进入游戏-大厅左...
八分钟下载!微乐小程序黑科技,... 八分钟下载!微乐小程序黑科技,微乐贵阳捉鸡麻将挂软件(开挂)好像真的是有挂(2026)1、打开软件启...
明白辅助挂!微乐小程序免费黑科... 明白辅助挂!微乐小程序免费黑科技,微信小程序微乐破解器(透视)确实真的是有挂(哔哩哔哩);1、游戏颠...