Я хочу показать диалоговое окно при запуске моего приложения, но я получаю ошибку ReferenceError: $ is not defined
, хотя я определил его как declare var $: any;
. Демо-версия на https://stackblitz.com/edit/angular-gnwe2c
Если вы проверите консоль, вы увидите ошибку.
Я определил DialogComponent
, который просто Bootstrap
модальный в dialog.component.html
. У него есть метод showDialog
, который вызывает Bootstrap
'modal
метод $(this.dialogRef.nativeElement).modal('show');
.
В app.component.html
я использую DialogComponent
- <app-dialog-box #dialogBox ></app-dialog-box>
. AppComponent
занимает Input
и, в зависимости от Input
, решает, показывать диалоговое окно или нет
App.component.ts
ngAfterViewInit(){
if(this.signup!=""){
if(this.signup === "success") {
this.showDialog("Signup was successful")
}else if(this.signup === "error") {
this.showDialog("Error: Signup wasn't successful")
} else {
this.showDialog("Unrecognised message: "+this.signup)
}
}
}
в index.html
<my-app [signup]="'success'">loading</my-app>
Кроме того, в index.html
я загружаю все javascripts
и jquery
перед использованием my-app
, поэтому я ожидаю, что $
должно быть доступно.
ОБНОВЛЕНИЕ -
Вот интересное поведение. Когда я запускаю приложение в первый раз, используя https://angular -gnwe2c.stackblitz.io , я не вижу диалогового окна и вижу ошибку в консоли ReferenceError: $ не определено, но если я изменю код (скажем, введите Enter, Stackblitz обновляет код, и появляется диалоговое окно! Я думаю, что когда приложение загружается изначально, jquery не загружается, но когда я изменяю код, jquery доступен в это время