Угловой 7: проблема с включенным компонентом - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть этот компонент, уже зарегистрированный в app.module.ts:

    import { Component } from '@angular/core';
import { MessageService } from 'primeng/api';

@Component({
  selector: 'app-modal',
  templateUrl: './modal.component.html',
  styleUrls: ['./modal.component.css'],
  providers: [MessageService]
})

export class ModalComponent {

  constructor(
    private messageService: MessageService
  ) { }

  onConfirm() {
  }

  showError(error) {
  }

}

, но я не могу включить этот компонент в другой компонент.я получаю эту ошибку:

Ошибка: ошибка (в обещании): ошибка: StaticInjectorError (AppModule) [TopbarComponent -> ModalComponent]: StaticInjectorError (платформа: ядро) [TopbarComponent -> ModalComponent]:

это мой TopbarComponent:

import { Component } from '@angular/core';
import { SessionStorageService } from 'angular-web-storage';
import { Router } from "@angular/router"
import { AppComponent } from '../app.component';
import { ModalComponent } from '../modal/modal.component';
import { HomeComponent } from '../home/home.component';
import { JhttpService } from '../jhttp.service';

@Component({
  selector: 'app-topbar',
  templateUrl: './topbar.component.html'
})

export class TopbarComponent {

  user = this.session.get('USER');

  constructor(
    private jhttpService: JhttpService,
    private session: SessionStorageService,
    private router: Router,
    private glob: AppComponent,
    private modal: ModalComponent,
    private app: HomeComponent
  ) { }

  onLogoutButtonClick(event) {
    this.modal.showError('CIAO');
    event.preventDefault();
  }
}

любое предложение ??

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Не добавляйте компоненты в конструктор.Также убедитесь, что другой ModalComponent должен быть частью модуля, где он используется.Либо импортируйте модуль ModalComponent в модуль, где он используется, либо добавьте ModalComponent в массив declaration модуля, где вы его используете.

0 голосов
/ 07 декабря 2018

Удалите компоненты из инжектора конструктора.

import { Component } from '@angular/core';
import { SessionStorageService } from 'angular-web-storage';
import { Router } from "@angular/router"
import { AppComponent } from '../app.component';
import { ModalComponent } from '../modal/modal.component';
import { HomeComponent } from '../home/home.component';
import { JhttpService } from '../jhttp.service';

@Component({
  selector: 'app-topbar',
  templateUrl: './topbar.component.html'
})

export class TopbarComponent {

  user = this.session.get('USER');

  constructor(
    private jhttpService: JhttpService,
    private session: SessionStorageService,
    private router: Router
  ) { }

  onLogoutButtonClick(event) {
    this.modal.showError('CIAO');
    event.preventDefault();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...