Angular 角度5,材料5 rc0-模态为;“不可购买”;

Angular 角度5,材料5 rc0-模态为;“不可购买”;,angular,angular-material,Angular,Angular Material,这件事快把我逼疯了。看看为什么它会给我这个错误 Error: StaticInjectorError[MatDialogRef]: StaticInjectorError[MatDialogRef]: NullInjectorError: No provider for MatDialogRef! 打开控制台查看。这是因为他们似乎已经更改了每个模块的入口点。您必须从@angular/material/dialog和@angular/material/button导入MatDia

这件事快把我逼疯了。看看为什么它会给我这个错误

Error: StaticInjectorError[MatDialogRef]: 
  StaticInjectorError[MatDialogRef]: 
    NullInjectorError: No provider for MatDialogRef!

打开控制台查看。

这是因为他们似乎已经更改了每个模块的入口点。您必须从
@angular/material/dialog
@angular/material/button
导入
MatDialogModule
MatDialog
等。然而,他们似乎没有说明这一变化

您还忘了从
@angular/platform browser/animations
导入
浏览器动画模块
,忘了在
样式.css中声明主题


看到这一点(我还将其更改为删除
@Input()
,并改为使用
componentInstance
)。。。成功了我们开始-


顺便说一句,我知道如何在stackblitz中用这个模式实现杀死Chrome:)

我不明白的是如何在AppComponent中使用模式对话框而不注入MatDialog。基本上,我有一个带有@Input()isOpen:Observable的容器组件,然后是一个模态组件,它是容器的子组件……您可以使用我上面提到的
componentInstance
属性。类似于
让dialogRef=this.dialog.open(MyDialog);dialogRef.componentInstance.data=“TEST”
并确保
MyDialog
组件声明了该属性。请让我了解。那么这种模式是如何工作的呢?我正在尝试在AppComponent级别使用一个通用组件,以便在我的应用程序中全局使用它。我用ngrx来做这个,这就是为什么我有这个ModalContainer。但现在我完全迷路了…谁否决了它-有什么原因吗?你是怎么做到的?链接中没有代码。