当前位置: 首页 > 知识库问答 >
问题:

角度:服务Observable不会在组件中触发[副本]

东郭承业
2023-03-14

我的效果在出错时,调用服务中的方法来显示对话。当对话完成时,它会将结果放入可观察的。

我有一个组件正在监听该服务中的可观察内容。问题是,组件第一次侦听服务,然后什么也听不到。

我正在设置该主题以避免收到错误消息,即第一次this.errorService.errorExist$没有返回任何内容。

错误服务

private errorExist = new Subject<boolean>();
errorExist$ = this.errorExist.asObservable();

constructor(public dialog: MatDialog) {
this.errorExist.next(false);
}

handleError() {
const dialogRef = this.dialog.open(ConfirmDialogComponent, {
  data: {
    title: 'Error Occurred',
    btn: 'OKAY'
  }
});
dialogRef.afterClosed().pipe(take(1)).subscribe( (result: boolean) => {
  console.log('inside the closed and result is: ', result);
  if (result) {
    this.errorExist.next(true);
  }
});
} 

成分

constructor(errorService: ErrorService) { }
private subscribeToError() {
  this.errorService.errorExist$.pipe(takeUntil(this.destroyed$)).subscribe((x: boolean) => {
    console.log('this does not print');
    if (x) {

    }
  }
}

共有1个答案

糜俊彦
2023-03-14

我会推荐rxjs库。

将错误存在者的主题更改为行为主题。

行为主体就是这样一个可以多次听的主体,也有一个起始值。

 类似资料:
  • 我有一个包含复杂输入(一些图表数据)的子组件。在获得 API 响应后,我通过 Angular 5 中的 @Input() 装饰器从父组件发送此图表数据。因此,每次在父组件上更改图表时,我都需要根据API响应同步图表,因此,OnChange生命周期。但不幸的是,我无法让它正常工作。我尝试使用基本数字类型设置虚拟输入字段并递增它,但徒劳无功。这是我的实现: 子图表组件: 父组件html: 父组件: P

  • 问题内容: 我正在尝试在应用程序中使用AngularJS,并在某种程度上取得了成功。 我能够获取数据并将其显示给用户。我有一个按钮,我想通过该按钮发布DELETE请求。下面是我的代码。 这是获取信息并将其显示给用户的功能。 数据已获取并正确显示。 但是,单击删除按钮后,不会触发其中的代码。在GoogleChrome浏览器的开发人员工具中,我可以看到为代码生成了有效值,但未触发代码。从我尝试去掉花括

  • 问题内容: 慧 我正在服务器端使用angular.js和node.js(Express.js)构建一个应用程序。 由于某些原因,我在处理删除请求时遇到问题。没有人会进入服务器端。 这是我的angular.js资源代码: 在服务器端,我有这个: 现在由于某种原因根本没有身体!它是空的。我已将路线定义为app.delete。 如果我将node.js中的路由更改为post,将其更改为angular.js

  • 我的组件具有以下功能: 我可以在我的html页面中插入选择菜单,但更改事件不会在我选择项目时触发。有人能让我知道为什么会发生这种情况吗? 谢谢

  • 我有一项定制技能,可以调用我创建的web服务。我可以启动并获得其他意图,但当我的技能用户更改通知权限时,我不会收到通知。我需要通知事件来获取用户id,以便稍后通过其他服务发送推送通知。 下面是我的json文件: 下面是启动请求:我截断了应用程序ID、用户ID、同意令牌、设备ID、apiAccessToken {“version”:“1.0”,“session”:{“new”:true,“sessi

  • 问题内容: 我已经看到angular.factory()和angular.service()都用于声明服务;但是,我在官方文档中找不到 任何地方。 两种方法有什么区别? 应该使用哪个(假设他们做不同的事情)? 问题答案: 直到我以这种方式对自己说: 服务 :您编写的 函数 将是 新的 -ed: Factory* :将 调用 您编写的 函数 (构造函数): * 您可以根据自己的意愿进行操作,但是有一