Front End

6 dez, 2017

html5Mode usando Angular 5

Publicidade

Para quem está na missão de migrar suas aplicações do Angular 1 para o Angular 5, vai passar por algumas descobertas: ngFor, ngIf, [hidden], [disabled], entre outras coisas. E uma das descobertas é em relação a famosa # (hashtag) na URL. No Angular 1, a gente resolvia facilmente com a importação do $locationProvider nas rotas e setando.

$locationProvider.html5Mode({
  enabled: true,
  requireBase: false
});

Ou simplesmente:

$locationProvider.html5Mode(true);

E adicionando a base href:

<head>
  <base href="/">
  ...
</head>

Mas como fica isso no Angular 5? No arquivo app.module.ts, faça a importação do APP_BASE_HREF:

import {APP_BASE_HREF} from '@angular/common';

E no decorator ngModule adicione:

providers: [{provide: APP_BASE_HREF, useValue: '/'}]

Você pode adicionar qualquer coisa no useValue, por exemplo: useValue : ‘/app’. Neste caso, todos meus links ficariam {dominio.ext}/app/{router}.

Espero que a dica seja útil.