我在导航栏上有一个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);
答案 0 :(得分:0)
在button
标记下嵌套a
似乎不是有效的HTML。
请参阅here。
这很可能是原因,尝试删除按钮并使用普通a
标记,看看它是否适合您。也许按钮点击有效,但a
未点击&#34;点击&#34;在这种情况下,没有任何反应。
答案 1 :(得分:0)
我明白了。当我单击页面内部而不是导航栏上的链接时,它会注册user / adduser而不仅仅是adduser,所以我将其添加到app.router.ts,现在它打开页面。 {path:'user / adduser',component:FormComponent}