Большое спасибо за это объяснение. Просто хочу добавить: в версии 6.x.x и более поздних, она не отображает никаких ошибок в EntryComponent

аюсь использоватьMatDialog и на основеэтот пример Я реализовал этот диалог следующим образом:

import {Component, Inject, OnInit} from '@angular/core';
import {Router} from '@angular/router';
import {AuthenticationService} from '../../../service/authentication.service';
import {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from '@angular/material';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})
export class HomeComponent {

  constructor(private router: Router, public dialog: MatDialog) { }

  openDialog(): void {
    const dialogRef = this.dialog.open(CreateGroupDialogComponent);
  }    
}

@Component({
  selector: 'app-create-group-dialog',
  template: `
    <span>Hello World!</span>
  `
})
export class CreateGroupDialogComponent {
  constructor(public dialogRef: MatDialogRef<CreateGroupDialogComponent>) {  }
}

Однако, несмотря на то, что диалоговое окно появляется, когда я нажимаю соответствующую кнопку, я получаю следующее:

HTML-шаблон не отображается, а размеры модального окна неверны.

Я не вижу, в чем проблема. Почему модал нарисован неправильно?

Это сгенерированный HTML-код при открытии модального. Как видно, пусто.

 displayname11 нояб. 2017 г., 18:46
@flamusdiu Да, никакого дополнительного CSS не требуется.
 flamusdiu11 нояб. 2017 г., 18:45
что у тебя в CSS? пусто?
 flamusdiu11 нояб. 2017 г., 18:49
Похоже, что это вкладка sidenav. Позвольте мне попробовать это в новом проекте.
 displayname11 нояб. 2017 г., 18:43
@flamusdiu Я не думаю, что это требование, но даже если я добавлю его или просто покажу<span>Hello World!</span> это все тот же результат.
 flamusdiu11 нояб. 2017 г., 18:41
Вам может понадобитьсяmat-dialog-content когда вы используетеmat-dialog-actions ссылка Видетьmaterial.angular.io/components/dialog/overview#dialog-content

Ответы на вопрос(1)

Решение Вопроса

Вы должны добавить его вentryComponents на ваше@NgModule

import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule } from '@angular/core';
import { MatDialogModule, MatButtonModule } from '@angular/material';

import { AppRoutingModule } from './app-routing.module';

import { AppComponent } from './app.component';
import { LoginComponent } from './login/login.component';
import { HomeComponent, DialogOverviewExampleDialogComponent } from './home/home.component';


@NgModule({
  declarations: [
    AppComponent,
    LoginComponent,
    HomeComponent,
    DialogOverviewExampleDialogComponent
  ],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    AppRoutingModule,
    MatDialogModule,
    MatButtonModule
  ],
  providers: [],
  bootstrap: [AppComponent],
  entryComponents: [
    DialogOverviewExampleDialogComponent
  ]
})
export class AppModule { }

Дуп изУ диалогового окна материала Angular2 есть проблемы - Вы добавили его в @ NgModule.entryComponents?

 displayname11 нояб. 2017 г., 20:43
Хорошо, спасибо, мужик!
 flamusdiu11 нояб. 2017 г., 19:40
FWIW, выдает ошибку в консоли, которая сообщает об этом, когда вы открываете диалоговое окно, и оно отсутствует.
 Zooly26 февр. 2019 г., 11:42
Большое спасибо за это объяснение. Просто хочу добавить: в версии 6.x.x и более поздних, она не отображает никаких ошибок в EntryComponent
 displayname11 нояб. 2017 г., 19:39
Да, это решило проблему - спасибо! Я только что увидел, что это на самом деле упоминается вдокументация (Должно быть, я упустил это там), но я не вижу этого вplunker пример.
 Victor18 сент. 2018 г., 08:21
Вы, сэр, легенда! Работал как шарм

Ваш ответ на вопрос