Bootstrap-select исчезает, когда я переключаюсь на другую страницу

Я пытаюсь добавить bootstrap-select в один из моих проектов, он отлично отображается, когда приложение загружается и URL-адрес вводится вручную, но когда я переключаюсь на другую страницу с помощью маршрутизации, выбор исчезает.

Когда я запускаю приложение

После того, как я переключу страницу и вернусь на ту же страницу

Мой app.module.ts выглядит так:

@NgModule({

declarations: [
    AppComponent,
    HeaderComponent,
    SearchComponent,
    VehiclesComponent,
    VehicleDetailComponent,
    VehicleEditComponent,
    VehicleListComponent,
    VehicleItemComponent,
    AuthComponent,
    SigninComponent,
    SignupComponent,
    MiniSearchComponent,
    AdvancedSearchComponent,
    FooterComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Файл angular.json

"styles": [
          "node_modules/bootstrap/dist/css/bootstrap.min.css",
          "node_modules/bootstrap-select/dist/css/bootstrap-select.min.css",            
          "src/styles.css"
          ],
 "scripts": [
          "node_modules/jquery/dist/jquery.min.js",
          "node_modules/popper.js/dist/umd/popper.min.js",
          "node_modules/bootstrap/dist/js/bootstrap.min.js",
          "node_modules/bootstrap-select/dist/js/bootstrap-select.min.js"
           ]

Я использую <router-outlet> для изменения страниц, все остальные компоненты и элементы управления загружаются нормально, за исключением выбора bootstrap-select

Спасибо за уделенное время

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
2
0
538
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Осмотревшись, я нашел решение этой проблемы:

Сначала необходимо добавить пакет типов для jQuery, используя следующую команду

npm install --save-dev @types/jquery

Во-вторых, добавьте в файл tslint.json следующую строку:

"allowSyntheticDefaultImports": true

В-третьих, добавьте это объявление в файл .ts, где вы используете select, оно должно быть сразу после импорта:

declare var $: any;

Четвертая реализация AfterViewInit и добавление следующего кода:

ngAfterViewInit(): void {
    $('.selectpicker').selectpicker();
}

Для этой работы у вас должны быть уже правильно установлены bootstrap 4, jQuery, popper и bootstrap-select.

Надеюсь, это поможет кому-то другому

Другие вопросы по теме