Angular 8如何从其上下文之外访问数据并检测变化。
创始人
2024-10-17 22:01:15
0

在Angular中,可以使用服务(Service)来从其上下文之外访问数据并检测变化。下面是一个示例:

首先,创建一个数据服务(data.service.ts):

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class DataService {
  private dataSubject = new BehaviorSubject('Initial data');
  public data$ = this.dataSubject.asObservable();

  constructor() { }

  updateData(newData: string) {
    this.dataSubject.next(newData);
  }
}

在上面的代码中,我们使用了BehaviorSubject来作为数据的容器,并将其暴露为data$的可观察对象。

然后,在需要访问数据的组件中,注入数据服务,并订阅数据的变化:

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

@Component({
  selector: 'app-my-component',
  template: `
    

{{ data }}

`, }) export class MyComponent implements OnInit { data: string; constructor(private dataService: DataService) { } ngOnInit() { this.dataService.data$.subscribe(newData => { this.data = newData; }); } updateData() { this.dataService.updateData('New data'); } }

在上面的代码中,我们注入了数据服务,并在ngOnInit生命周期钩子中订阅了数据的变化。每当数据发生变化时,回调函数会被触发,并更新组件中的数据。

最后,在组件的模板中,我们可以通过{{ data }}来显示数据,并通过点击按钮来更新数据。

这样,我们就可以从组件的上下文之外访问数据,并且当数据发生变化时,组件会自动检测到并更新视图。

相关内容

热门资讯

第8分钟开挂!微乐小程序免费黑... 第8分钟开挂!微乐小程序免费黑科技,微信微乐小程序修改器(开挂)一贯存在有挂(2026)1、下载好微...
事发当天!微乐小程序黑科技,微... 事发当天!微乐小程序黑科技,微信微乐游戏有辅助吗(透视)切实存在有挂(哔哩哔哩)1)微信微乐游戏有辅...
第1分钟透视!微乐小程序黑科技... 第1分钟透视!微乐小程序黑科技,小程序微乐陕西挖坑辅助(开挂)一直真的是有挂(2026)1、任何微乐...
第三方辅助挂!微乐小程序黑科技... 第三方辅助挂!微乐小程序黑科技,微乐三带辅助(透视)切实真的是有挂(哔哩哔哩)微乐小程序黑科技脚本下...
第八分钟神器!微乐小程序黑科技... 第八分钟神器!微乐小程序黑科技,微乐游戏小程序辅助器免费苹果版(开挂)果然是有挂(2026)1、每一...
透视有挂!微乐小程序黑科技,微... 透视有挂!微乐小程序黑科技,微乐自建房脚本使用安全吗(透视)都是真的是有挂(哔哩哔哩)1、金币登录送...
第5分钟辅助!微乐小程序黑科技... 第5分钟辅助!微乐小程序黑科技,微信小程序游戏破解微乐辅助(开挂)竟然有挂(2026)微乐小程序黑科...
在玩家背景下!微乐小程序黑科技... 在玩家背景下!微乐小程序黑科技,微乐小程序插件免费贴吧(透视)果然存在有挂(哔哩哔哩)暗藏猫腻,小编...
第3分钟透视!微乐小程序免费黑... 第3分钟透视!微乐小程序免费黑科技,微乐小程序辅助开发透视(开挂)果然是有挂(2026)1、微乐小程...
透视最新!微乐小程序免费黑科技... 透视最新!微乐小程序免费黑科技,微乐贵阳捉鸡麻将开挂(透视)其实真的有挂(哔哩哔哩)1、打开软件启动...