2016-08-11 8 views
2

홈 페이지에서 로그인 페이지로 이동하기 위해 <a routerLink="/login">Login</a>을 클릭 할 수 없습니다.각도 2 routerLink가 작동하지 않습니다

index.html을 :

<html> 
    <head> 
     <base href="/"> 
     <title>Portfolio</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <script src="bower_components/jquery/dist/jquery.min.js"></script> 
     <!-- Bootstrap --> 
     <script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script> 
     <link href="bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"> 
     <link rel="stylesheet" href="css/style.css"> 
     <!-- 1. Load libraries --> 
     <!-- Polyfill(s) for older browsers --> 
     <script src="node_modules/core-js/client/shim.min.js"></script> 
     <script src="node_modules/zone.js/dist/zone.js"></script> 
     <script src="node_modules/reflect-metadata/Reflect.js"></script> 
     <script src="node_modules/systemjs/dist/system.src.js"></script> 
     <!-- 2. Configure SystemJS --> 
     <script src="systemjs.config.js"></script> 
     <script> 
      System.import('app').catch(function (err) { 
       console.error(err); 
      }); 
     </script> 
    </head> 
    <!-- 3. Display the application --> 
    <body> 
     <my-app>Loading...</my-app> 
    </body> 
</html> 

home.html을 :

난 이미 이것은 내가 내 코드에있을 것입니다 튜토리얼 및 각도 2.

의 웹 사이트의 개발자 가이드를 읽고

<nav class="navbar"> 
    <div class="container-fluid"> 
     <!-- Brand and toggle get grouped for better mobile display --> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> 
       <span class="sr-only">Toggle navigation</span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" href="#">Portfolio</a> 
     </div> 

     <!-- Collect the nav links, forms, and other content for toggling --> 
     <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
      <ul class="nav navbar-nav"> 
       <li class="active"><a href="#">Home <span class="sr-only">(current)</span></a></li> 
       <li><a href="#">Over</a></li> 
       <li><a href="#">Portfolio</a></li> 
       <li><a href="#">C.V.</a></li> 
      </ul> 
      <ul class="nav navbar-nav navbar-right"> 
       <li><a routerLink="/login">login</a></li> 
       <li><a href="#">Register</a></li> 
      </ul> 
     </div><!-- /.navbar-collapse --> 
    </div><!-- /.container-fluid --> 
</nav> 
<router-outlet></router-outlet> 
<h1>test</h1> 

app.module.ts :

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 

import { AppComponent } from './app.component'; 
import { routing, appRoutingProviders }  from './app.routing'; 

import { LoginComponent } from '../components/login.component'; 

@NgModule({ 
    imports: [ 
     BrowserModule, 
     routing 
    ], 
    declarations: [ 
     AppComponent, 
     LoginComponent 
    ], 
    providers: [ 
     appRoutingProviders 
    ], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 
,

app.component.ts :

import { Component } from '@angular/core'; 
import {ROUTER_DIRECTIVES} from '@angular/router'; 

@Component({ 
    selector: 'my-app', 
    templateUrl : '../home.html', 
    directives: [ROUTER_DIRECTIVES] 
}) 
//AppComponent is the root of the application 
export class AppComponent { 
    constructor() { 
     console.log("We are up and running!"); 
    } 
} 

app.routing.ts :

import { Routes, RouterModule } from '@angular/router'; 

import { LoginComponent } from '../components/login.component'; 

const appRoutes: Routes = [ 
    { 
     path: 'login', 
     component: LoginComponent, 
     // redirectTo: '/login', 

     // pathMatch: 'full' 
    } 
]; 
export const appRoutingProviders: any[] = [ 
    appRoutes 
]; 

export const routing = RouterModule.forRoot(appRoutes); 

login.component.ts :

import { Component, OnInit } from '@angular/core'; 
import { Router }   from '@angular/router'; 

@Component({ 
    templateUrl: 'views/login.html' 
}) 
export class LoginComponent { 
    constructor() { 
     console.log("we have arrived logincomponent"); 
    } 
} 

내가 뭔가 잘못하고 있는가 아니면 내가 놓친 거지 어떤 것? 어쨌든 귀하의 회신에 감사드립니다.

+0

왜 당신이 당신의 로그인 구성 요소의 선택을해야합니까? 표시된 것보다이 프로젝트에 더 많은 것이 있습니까? 또한 "index.html"은 꽤 무서운 짐승입니다. 거기에 라우터 링크를 중첩시켜야한다고 생각하지 않습니다. 대신 탐색 막대와 같은 구성 요소 안에 있어야합니다. 해당 라우터 링크를 app.component (home.html)에 복사하고 탐색 할 수 있는지 확인하십시오. – Bean0341

+0

@ Bean0341 ​​나는 아직도 바빴다. 내 로그인 구성 요소에서 해당 선택기를 제거했습니다. 그리고 이미 시도해 봤지만 여전히 'Login' – superkytoz

+0

을 클릭 할 수 없었습니다. 라우터 내부를 라우터 내부로 옮겨 보았습니까? – Bean0341

답변

1

내 문제를 해결하기 위해 각도 2의 웹 사이트에서 정보를 찾을 수 없습니다. 그래서 튜토리얼을 보았습니다. 자습서의이 사람 링크에 크레딧을 보았습니다. https://www.youtube.com/watch?v=Ppy3ipDzngA

코드가 있지만 여전히 내 문제가 해결되었습니다.

navbar.component.ts :

import { Component } from '@angular/core'; 
import {ROUTER_DIRECTIVES} from '@angular/router'; 

@Component({ 
    moduleId: module.id, 
    selector: 'navbar', 
    templateUrl : 'navbar.component.html', 
    directives: [ROUTER_DIRECTIVES] 
}) 
//AppComponent is the root of the application 
export class NavbarComponent { 
    constructor() { 

    } 
} 

navbar.component.html :

<nav class="navbar"> 
    <div class="container-fluid"> 
     <!-- Brand and toggle get grouped for better mobile display --> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> 
       <span class="sr-only">Toggle navigation</span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" href="#">Portfolio</a> 
     </div> 

     <!-- Collect the nav links, forms, and other content for toggling --> 
     <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
      <ul class="nav navbar-nav"> 
       <li class="active"><a a routerLink="/" routerLinkActive="active">Home <span class="sr-only">(current)</span></a></li> 
       <li><a routerLink="/about" routerLinkActive="active">Over</a></li> 
       <li><a href="#">Portfolio</a></li> 
       <li><a href="#">C.V.</a></li> 
      </ul> 
      <ul class="nav navbar-nav navbar-right"> 
       <li><a routerLink="/login" routerLinkActive="active">login</a></li> 
       <li><a href="#">Register</a></li> 
      </ul> 
     </div><!-- /.navbar-collapse --> 
    </div><!-- /.container-fluid --> 
</nav> 

app.routing.ts :

여기

내가 추가 한 코드입니다
//import { Routes, RouterModule } from '@angular/router'; 
import { provideRouter, RouterConfig } from '@angular/router'; 
import { SearchComponent } from './components/search/search.component'; 
import { AboutComponent } from './components/about/about.component'; 
import { LoginComponent } from './components/login/login.component'; 

//import { LoginComponent } from '../components/login.component'; 

const appRoutes: RouterConfig = [ 
    { 
     path: '', //represents the home page 
     component: SearchComponent, 
    }, 
    { 
     path: 'about', 
     component: AboutComponent, 
    }, 
    { 
     path: 'login', 
     component: LoginComponent, 
    } 
]; 

export const appRouterProviders = [ 
    provideRouter(appRoutes) 
]; 

main.ts :

//Angular's browser bootstrap function 
import { bootstrap } from '@angular/platform-browser-dynamic'; 
import { appRouterProviders } from './app.routing'; 

//The application root component, AppComponent 
import { AppComponent } from './app.component'; 
bootstrap(AppComponent, [appRouterProviders]); 

app.component.ts :

import { Component } from '@angular/core'; 
import { NavbarComponent } from './components/navbar/navbar.component'; 
import {ROUTER_DIRECTIVES} from '@angular/router'; 
import { SearchComponent } from './components/search/search.component'; 
import { AboutComponent } from './components/about/about.component'; 

@Component({ 
    moduleId: module.id, 
    selector: 'my-app', 
    templateUrl: 'app.component.html', 
    directives: [ROUTER_DIRECTIVES, NavbarComponent], 
    // precompile: [SearchComponent, AboutComponent] 
}) 
//AppComponent is the root of the application 
export class AppComponent { 
    constructor() { 

    } 
} 

app.component.html :

<navbar></navbar> 
<div class="main"> 
    <div class="container"> 
     <router-outlet></router-outlet> 
    </div> 
</div> 
관련 문제