routerLink仅适用于导航栏

时间:2016-11-10 18:09:51

标签: angular

我在导航栏上有一个routerLink =“adduser”,它也位于添加用户按钮的users.component.ts中。如果我点击导航栏,它会将我带到form.component.html页面,但如果我点击users-component.ts文件中的adduser按钮,那么没有任何反应,我不明白为什么。任何人都可以向我解释我哪里出错了。我还是新手。

app.component.html

<div class="navbar navbar-default navbar-fixed-top">
     <div class="container">
       <div class="navbar-header">
         <a href="../" class="navbar-brand">ngProject</a>
         <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#navbar-main">
           <span class="icon-bar"></span>
           <span class="icon-bar"></span>
           <span class="icon-bar"></span>
         </button>
       </div>
       <div class="navbar-collapse collapse" id="navbar-main">
         <ul class="nav navbar-nav">

           <li>
             <a routerLink="user">Users</a>
           </li>
           <li>
             <a routerLink="adduser">Add Users</a>
           </li>

         </ul>



       </div>
     </div>
   </div>

<div class="container">
<div class="content">
<router-outlet></router-outlet>
</div>
</div>

users.component.ts

import {Component} from '@angular/core';
import 'rxjs/add/operator/map';
import {Http} from '@angular/http';
import {UserService} from './users.service';

@Component({
selector: 'user',
template: `
<div class="container">
  <h1>Users</h1>
<h2><a routerLink="adduser"><button class="btn btn-primary">Add User</button></a></h2>
  <table class="table table-bordered">
    <thead>
      <tr>
        <th>Firstname</th>
        <th>Email</th>
        <th>Edit</th>
        <th>Delete</th>
      </tr>
    </thead>
    <tbody *ngFor="let user of _users">
      <tr>
        <td>{{user.name}}</td>
        <td>{{user.email}}</td>
        <td><i class="glyphicon glyphicon-edit"></i></td>
            <td><i class="glyphicon glyphicon-remove"></i></td>
      </tr>

    </tbody>
  </table>
</div>
`,
providers: [UserService]

})


export class UsersComponent{
  private _users;
constructor(private _userService:UserService){
this._userService.getUsers()
.subscribe(res => {
this._users = res;

})

}


}

app.router.ts

import {ModuleWithProviders} from '@angular/core'; import {Routes, RouterModule} from '@angular/router'; import {FormComponent} from './form/form.component'; import {UsersComponent} from './users.component';

export const router: Routes = [

  {path: 'user', component: UsersComponent}, {path: 'adduser', component: FormComponent}

];

export const routes: ModuleWithProviders = RouterModule.forRoot(router);

2 个答案:

答案 0 :(得分:0)

button标记下嵌套a似乎不是有效的HTML。

请参阅here

这很可能是原因,尝试删除按钮并使用普通a标记,看看它是否适合您。也许按钮点击有效,但a未点击&#34;点击&#34;在这种情况下,没有任何反应。

答案 1 :(得分:0)

我明白了。当我单击页面内部而不是导航栏上的链接时,它会注册user / adduser而不仅仅是adduser,所以我将其添加到app.router.ts,现在它打开页面。 {path:'user / adduser',component:FormComponent}

相关问题