Dev & EngARTIGO

Angular 7 com Bootstrap 4

No seguinte artigo, Kheronn Machado mostra como codificar interfaces gráficas bonitas, responsivas e performáticas usando o Bootstrap 4.

Angular 7 com Bootstrap 4
Imagem: Kheronn Machado

Se assim como eu você enfrenta certa dificuldade para codificar interfaces gráficas bonitas, responsivas e performáticas, veja como é fácil integrar um dos frameworks mais famosos nessa empreitada: o Bootstrap na versão 4.

Usaremos o AngularAngular30 conteúdosCriando Micro Frontends Angular com Native FederationDev (Back & Front) · mar 2026Angular v21 e o Fim da Cobertura de Testes Exclusivamente em TypeScript: Por Que Precisamos Repensar os Testes de ComponentesDev (Back & Front) · jan 2026Angular 8 é lançado com builder APIs e suporte web workerDev (Back & Front) · mai 2019Ver tudo em Dev (Back & Front) 7 para construir nossa aplicação exemplo e a lib NGXBootstrap, que facilita a integração e suporta as últimas versões do Angular.

Após a criação do projeto, o passo seguinte é instalar a lib. Há dois métodos para a tarefa.

No primeiro você precisa instalar e configurar manualmente. Porém, a segunda abordagem faz uso de schematics, atualizando as dependências e configurações necessárias para inicialização do app.

No diretório do projeto, informe no terminal:

bash
$ ng add ngx-bootstrap

Finalizado o processo, observe no package.json a inclusão de duas dependências:

E ainda, a inclusão de dois estilos no angular.json:

angular.json

Cada componente possui um módulo. Assim, ao utilizar o Accordion, você deve importar o módulo correspondente.

Observe o código no arquivo app.component.ts:

import { BrowserModule } from ‘@angular/platform-browser’;
import { NgModule } from ‘@angular/core’;
import { AppRoutingModule } from ‘./app-routing.module’;
import { AppComponent } from ‘./app.component’;
import { AccordionModule } from ‘ngx-bootstrap/accordion’;
@NgModule({
 declarations: [
 AppComponent
 ],
 imports: [
 BrowserModule,
 AppRoutingModule,
 AccordionModule.forRoot()
 ],
 providers: [],
 bootstrap: [AppComponent]
})
export class AppModule { }

No template do componente (app.component.html) deixei assim:

<div class=”p-3">
 <accordion>
 <accordion-group heading=”Mortal Kombat 11">
 <li>Bolsonaro</li>
 <li>Haddad</li>
 <li>Ciro</li>
 </accordion-group> <accordion-group heading=”Mortal Kombat X”>
 <li>Scorpion</li>
 <li>SubZero</li>
 <li>Raiden</li>
 </accordion-group>
 <accordion-group heading=”Mortal Kombat 9">
 <li>Liu Kang</li>
 <li>Kano</li>
 <li>Sonia</li>
 </accordion-group>
 </accordion>
</div>

Ao iniciar o servidor local (ng serve), o resultado deve ser assim:

Conforme aumenta a necessidade de incluir componentes – e isso vai acontecer – , o módulo principal poderá poluir de imports, ficando difícil a manutenção.

Considere utilizar lazy loading para os componentes da aplicação ou criar um módulo específico. No terminal, digite:

bash
$ ng g module modules/ngxbootstrap

O comando anterior cria um módulo NgxBoostrap na pasta modules.

Informei três componentes (Accordion, DatePicker e Alert) para exemplificar.

Logo, meu módulo responsável pelos componentes bootstrap ficou da seguinte maneira:

javascript
import { NgModule } from ‘@angular/core’;
import { CommonModule } from ‘@angular/common’;
import { AccordionModule } from ‘ngx-bootstrap/accordion’;
import { BsDatepickerModule } from ‘ngx-bootstrap/datepicker’;
import { AlertModule } from ‘ngx-bootstrap/alert’;
@NgModule({
 declarations: [],
 imports: [
 CommonModule,
 AccordionModule.forRoot(),
 BsDatepickerModule.forRoot(),
 AlertModule.forRoot()
 ],
 exports:[AccordionModule, BsDatepickerModule, AlertModule]
})
export class NgxBootstrapModule { }

Não esqueça de importar este módulo agora no módulo root (app.module.ts).

javascript
//trecho omitido
imports: [BrowserModule,AppRoutingModule,NgxBootstrapModule],

Até mais!

Mestre em Informática pela Universidade Federal do Paraná. Atuo como professor e assessor pedagógico em Tecnologias Educacionais na rede Estadual de Educação do Paraná, NRE de Wenceslau Braz. Interesse em tecnologias que contribuam para aprendizagem significativa.

Mais de Kheronn Machado
Ver perfil
Leia também