Я разделил модалы как компоненты и написал сервис, чтобы я мог использовать этот сервис и открывать модал из любого места.
Мой сервис
import { Injectable } from '@angular/core';
import { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';
import { BsModalService } from 'ngx-bootstrap/modal';
import { LoginComponent } from './login/login.component';
@Injectable()
export class MyModalsService {
loginModalRef: BsModalRef;
public modalService: BsModalService;
constructor() {
}
openLogin() {
this.loginModalRef= this.modalService.show(LoginComponent);
}
}
login.component.ts
import { MyModalsService } from '../modals.service';
export class LoginComponent implements OnInit {
constructor(public _userService: UserService,
private http: Http,
public server:ServerService,
public _otherservicesService: OtherservicesService,
public global:GlobalService,
public datepipe: DatePipe,
public mymodal: MyModalsService,
public router:Router) {}
AfetrSuccessLogin() {
this.mymodal.loginModalRef.hide();
}
}
Мне грозит следующее исключение
Uncaught Error: Can't resolve all parameters for LoginComponent: ([object Object], [object Object], [object Object], [object Object], [object Object], [object Object], ?, [object Object]).
В терминале
WARNING in Circular dependency detected:
src/app/modals.service.ts -> src/app/login/login.component.ts ->
src/app/modals.service.ts
WARNING in Circular dependency detected:
src/app/login/login.component.ts ->
src/app/modals.service.ts -> src/app/login/
login.component.ts