MatDialog模块内部服务不单例

时间:2018-07-05 08:42:51

标签: angular angular5

当我打开Mat对话框弹出窗口(有角度的材质)并访问单例服务时,由于某种原因,在mat对话框内,该服务似乎是该服务的新实例,而不是整个应用程序中使用的单例服务。

>

我知道如何解决,但我更喜欢了解matdialog是否存在已知问题以及可能的解决方法。

  const dialogRef = this.dialog.open(MyComponent, {
  width: '400px',
  data: {
    myInfo: Info
  },
});

该服务以单例形式添加到“ App.component.ts”中:

import {Component, OnInit} from '@angular/core';
import {NavigationEnd, Router} from '@angular/router';
import {AuthService} from './shared/services/auth.service';
@Component({  selector: 'app-root',  templateUrl: './app.component.html',  styleUrls: ['./app.component.scss'],  

providers: [AuthService]})    export class AppComponent implements OnInit {}

谢谢!

1 个答案:

答案 0 :(得分:0)

据我所知,问题在于您在service内声明了AppComponent,但是material dialogsapp-root之外产生了(angular cdk是作为body中的最后一个元素生成,因此它不适用于您的dialog component。要解决此问题,您应该在主AuthSerivce内声明提供程序AppModule,然后在对话框组件中将其可见。