Понимание области действия углового модуля (для ngx-bootstrap)
Я немного новичок в Angular и у меня проблемы с интеграцией ngx-bootstrap в мой проект при использовании модулей ng...
Чтобы быть более кратким - все работает правильно, когда я добавляю html непосредственно в app.component.html, но не работает, когда я добавляю тот же код в app- компонент и объявляю его внутри app.component.html
Предпринятые шаги:
Использовал Angular CLI 1.7.4 для создания нового проекта (с Angular 5.2.9)
Используемый
npm install --save bootstrap ngx-bootstrap
и импортированные bootstrap.min.css в моем style.cssСоздал новый модуль с именем app-bootstrap.module.ts в src/app и включил в него следующее:
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
@NgModule({
imports: [BsDropdownModule.forRoot()],
exports: [BsDropdownModule]
})
export class AppBootstrapModule { }
На данный момент, если я включу HTML-код, например, скажем для кнопки выпадающего в
app.component.html
(после импорта вышеупомянутого модуля тоже), он работает как положено. Тем не менее, это не то, что я хочу, поэтому я пошел вместе со следующими шагами.
- Создал новый компонент в раскрывающемся меню под src/app и включил в него следующее
dropdown.component.html
:
<div class="btn-group" dropdown>
<button dropdownToggle type="button" class="btn btn-primary dropdown-toggle">
Button dropdown
<span class="caret"></span>
</button>
<ul *dropdownMenu class="dropdown-menu" role="menu">
<li role="menuitem">
<a class="dropdown-item" href="#">Action</a>
</li>
<li role="menuitem">
<a class="dropdown-item" href="#">Another action</a>
</li>
<li role="menuitem">
<a class="dropdown-item" href="#">Something else here</a>
</li>
<li class="divider dropdown-divider"></li>
<li role="menuitem">
<a class="dropdown-item" href="#">Separated link</a>
</li>
</ul>
</div>
- Создан модуль под названием
custom-components.module.ts
в src/app и объявленном выпадающем компоненте внутри него:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { DropdownComponent } from './dropdown/dropdown.component';
@NgModule({
imports: [CommonModule],
declarations: [DropdownComponent],
exports: [DropdownComponent]
})
export class CustomComponentsModule { }
- импортный
customComponentsModule
вapp.module.ts
следующее:
//... Bootstrap and Components Modules
import { AppBootstrapModule } from './app-bootstrap.module';
import { CustomComponentsModule } from './custom-components.module';
@NgModule({
declarations: [AppComponent],
imports: [
CustomComponentsModule, //Custom Components
AppBootstrapModule //Bootstrap Module
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
добавленной
<app-dropdown></app-dropdown>
внутриapp.components.html
Когда я бегу
ng serve
здесь кнопка показывает все стилизованные, но когда я нажимаю на нее, ничего не происходит. Как упоминалось ранее, выпадающий список работает, когда я помещаю тот же код вapp.component.html
- это заставило меня поверить, что есть проблема, которую я не понимаю. Довольно разочаровывает, никаких ошибок не появляется.
Замечания:
Я использовал "выпадающий" компонент просто для краткости.
Если я пропустил добавление чего-то важного, просим об этом в комментариях, и я предоставлю это.
Извинения за большой пост; любая помощь будет высоко ценится, спасибо!