- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个函数可以打开一个带有名为“NoteFormComponent”的组件的 MatDialog,它看起来像这样
openForm() {
let dialogConfig = new MatDialogConfig();
dialogConfig.autoFocus = true;
dialogConfig.width = "95%";
dialogConfig.panelClass = "form-dialog";
dialogConfig.scrollStrategy = new NoopScrollStrategy();
this.dialog.open(NoteFormComponent, dialogConfig).beforeClose().subscribe(() => this.getNotes());
}
我弹出一个包含“NoteFormComponent”的模式。那么问题是什么?
问题是我想在没有 MatDialog 的情况下使用“NoteFormComponent”,但是为了将它与 MatDialog 一起使用,我必须像这样在组件的构造函数中注入(inject)一个引用
constructor(
private noteService : NoteService,
private productService : ProductService,
private categoryService : CategoryService,
private clientService : ClientService,
private notification : NotificationService,
private dialogRef : MatDialogRef<NoteFormComponent>, /*This Reference*/
private loader : LoaderService,
private sessionService : SessionService,
private securityBlockerService : SecurityBlockerService,
private dialog : MatDialog,
private dialogService : DialogService
) { }
如果我尝试将组件与模板选择器一起使用,它会抛出一个错误,即没有 MatDialogRef 的提供者,我唯一想到的就是创建一个副本'NoteFormComponent' 但构造函数中没有 MatDialogRef 注入(inject)器。
有没有办法解决或解决这个问题?
最佳答案
在构造函数(Reference)中注入(inject) MatDialogRef 时使用 @Optional()
装饰器:
constructor(
...
@Optional() private dialogRef: MatDialogRef<NoteFormComponent>,
...
) { ... }
通过这样做,您可以以正常方式使用 NoteFormComponent
,而无需使用 MatDialog。
关于angular - 使用不带 MatDialog 的组件,MatDialogRef<SomeComponent>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55942202/
我有已经上线的 angular 6/node js 系统。所以现在我需要将最新的更改移动到实时服务器,然后再移动到开发服务器。两者都是相同的环境,即 Linux Server (RHEL7.6) 并且
我写React/Vue。像往常一样,我喜欢导出/导入默认组件。 // export export default class SomeComponent from Component { //
我将所有 Angular 库升级到 angular 9.0.0使用 ng update当我尝试构建它们时,出现以下错误。 错误: Unsupported private class SomeCompo
我有一个函数可以打开一个带有名为“NoteFormComponent”的组件的 MatDialog,它看起来像这样 openForm() { let dialogConfig = new
我只是在阅读 AngularDart routing tutorial并遇到了这个代码片段。 import 'package:angular/angular.dart'; import 'packag
通常在使用 Dagger 2 和 android 时,我有以下内容: @Singleton @Component(modules = {ApplicationModule.class}) public
我正在尝试创建一个服务来注入(inject) 在我的 DOM 中,而不是通过我的组件执行此操作。 我的 Renderer2 实现在组件中使用时完美运行,但通过服务使用 Rendere2 时出现此错误
当我想使用以下包版本在 AOT 中编译我当前的项目时,我遇到了问题: @ngtools/webpack@6.0.3 @angular@latest (6.0.2) Webpack@4.0.0 my w
我是一名优秀的程序员,十分优秀!