javascript - 类型 'open' 上不存在属性 'MatDialogModule'

标签 javascript html css angular angular-material

刚刚开始构建 Angular 应用程序。我正在编写一个小型图书库存应用程序。我在使用 Material 模块 中的对话框组件 时遇到问题。我访问了 Angular Material 网站来检查我的实现,但仍然无法让它按预期运行。我在 snackbar 组件 上遇到了类似的问题。想知道以前是否有人遇到过这个问题。感谢您的帮助!

app.Module.ts

import {MatDialogModule } from '@angular/material/dialog';

imports:[MatDialogModule]

collection.component.ts

import {MatDialogModule, MatDialogRef } from '@angular/material/dialog';

bookDetailDialogRef: MatDialogRef<BookDetailComponent>;

constructor(private dataService: DataService, private snackBar: MatSnackBarModule,
              private _dialog: MatDialogModule, private _router: Router){}

openDialog(bookId: number): void{
    let config = {with: '650px', height: '400px', position: {top: '50px'}};
    let dialogRef = this._dialog.open(this.bookDetailDialogRef, config);
    dialogRef.componentInstance.bookId = bookId;
    dialogRef.afterClosed().subscribe(res => {this.getBooks();});
  }

collection.component.html

<button mat-button (click)="openDialog(book.id)"><i class="material-icons">
              pageview</i> Dialog</button>

最佳答案

_dialog 的类型是 MatDialog 而不是 MatDialogModule 并将 MatSnackBarModule 更改为 MatSnackBar。在您的构造函数中将其更改为,

constructor(private dataService: DataService, private snackBar: MatSnackBarModule,
              private _dialog: MatDialog, private _router: Router){}

关于javascript - 类型 'open' 上不存在属性 'MatDialogModule',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47973343/

相关文章:

javascript - Sublime 中的 React.js 奇怪语法高亮显示

javascript - Cypress E2E 基本身份验证失败

javascript - 在脚本中访问 Angular Controller

javascript - 如何获取子节点的父节点

javascript - jQuery Chose插件如何从下拉列表中删除所选元素

javascript - 如何将两个ajax结合在一起

javascript - 从图像中取出alt标签并放入div

javascript - 如何在 Rails 中的单个页面上/为单个页面包含自定义 javascript?

html - Bootstrap 3 中合理的 100% 宽度导航栏

css - 如何制作CSS "if opera,not..."