Meu roteamento nos aplicativos angular2 funciona bem. Mas vou fazer algum routeLink com base nisso :
Aqui está minha rota:
const routes: RouterConfig = [
{ path:'home' , component: FormComponent },
{ path:'about', component: AboutComponent },
{ path:'**' , component: FormComponent }
];
E aqui estão os links que fiz:
<ul class="nav navbar-nav item">
<li>
<a routerLink='/home' routerLinkActive="active">Home</a>
</li>
<li>
<a routerLink='/about' routerLinkActive="active">About this</a>
</li>
</ul>
Espero que, quando clico neles, navegue até o componente respeitado, mas eles não realizam nada?
angular
angular2-routing
Jeff
fonte
fonte
[routerLink]='[/home']
? Qual versão do Angular2 e versão do roteador você está usando?[routerLink]="['/home']"
directives: [ROUTER_DIRECTIVES],
os metadados do seu componente. Sem isso, o Angular não saberá analisar osrouterLink
s.Respostas:
O código que você está mostrando está absolutamente correto.
Eu suspeito que o seu problema é que você não está importando RouterModule (que é onde RouterLink é declarado) para o módulo que usa este modelo.
Tive um problema semelhante e demorei algum tempo a resolver porque este passo não é mencionado na documentação.
Portanto, vá para o módulo que declara o componente com este modelo e adicione:
em seguida, adicione-o às suas importações de módulos, por exemplo
Além de ter as instruções de importação corretas, você também precisará de um local para que o routerLink seja mostrado, que é o
<router-outlet></router-outlet>
elemento, de modo que também precise ser colocado em algum lugar em sua marcação HTML para que o roteador saiba onde exibir esses dados.fonte
não se esqueça disso para adicionar o seguinte em seu modelo:
fonte
Tente alterar os links conforme abaixo:
Além disso, adicione o seguinte no cabeçalho de index.html:
<base href="https://stackoverflow.com/">
fonte
use-o assim para obter mais informações, leia este tópico
fonte
routerLink
deve funcionar ;-)"@angular/router": "~3.4.0"
. Felicidades!Estou ciente de que esta questão é bastante antiga agora, e provavelmente você já a corrigiu, mas gostaria de postar aqui como referência para quem encontrar esta postagem enquanto soluciona este problema é que esse tipo de coisa venceu não funcionará se suas tags Anchor estiverem em Index.html. Precisa estar em um dos componentes
fonte
Os links estão errados, você deve fazer isso:
Você pode ler este tutorial
fonte
Eu estava usando routerlink em vez de routerLink .
fonte
Para qualquer pessoa que tenha esse erro depois de dividir os módulos, verifique suas rotas, o seguinte aconteceu comigo:
public-routing.module.ts:
app-routing.module.ts:
Mova
{ path: '**', redirectTo: 'home' }
para seu AppRoutingModule:public-routing.module.ts:
app-routing.module.ts:
fonte
Há também outro caso que se adequa a esta situação. Se em seu interceptor, você o fez retornar um valor não booleano, o resultado final é assim.
Por exemplo, tentei devolver
obj && obj[key]
coisas. Depois de depurar por um tempo, então eu percebi que tenho que converter isso para o tipo booleano manualmenteBoolean(obj && obj[key])
, para deixar o clique passar.fonte
Seguindo o exemplo de trabalho , descobri a solução para o caso de componente puro:
fonte
Para olhos não muito penetrantes como os meus, em
href
vez derouterLink
, fiz algumas pesquisas para descobrir o #facepalm.fonte