2017-01-02 3 views
23

Я пытаюсь перейти на другую страницу, нажав кнопку, но она не работает. В чем может быть проблема. Теперь я изучаю угловой 2, и теперь это немного сложно для меня.Перейдите на другую страницу с кнопкой в ​​угловом 2

//Routes/Path in a folder call AdminBoard 

export const AdminRoutes: Routes =[ 

    { 
    path: 'dashboard', 

    component: AdminComponent, 
    children: [ 
     {path: '', redirectTo: 'Home'}, 
     {path: 'Home', component: HomeComponent}, 
     {path: 'Service', component: ServiceComponent}, 
     {path: 'Service/Sign_in', component:CustomerComponent} 

    ] 

    } 

]; 

//Button is also in a different folder. Click button to navigate to this page   {path: 'Service/Sign_in', component:CustomerComponent} 

    <button class="btn btn-success pull-right" ><a routerLink="/Service/Sign_in"> Add Customer</a></button> 
+0

Возможный дубликат [Угловая 2 переадресация при нажатии] (http://stackoverflow.com/questions/37252146/angular-2-redirect-on-click) – Habeeb

+1

попробуйте что-то вроде этого: '' –

ответ

56

Используйте его, как это, должно работать:

<a routerLink="/Service/Sign_in"><button class="btn btn-success pull-right" > Add Customer</button></a> 

Вы можете также использовать router.navigateByUrl('..') так:

<button type="button" class="btn btn-primary-outline pull-right" (click)="btnClick();"><i class="fa fa-plus"></i> Add</button>  

import { Router } from '@angular/router'; 

btnClick= function() { 
     this.router.navigateByUrl('/user'); 
}; 

Update

Вы должны инициализировать router в конструкторе, как это:

constructor(private router: Router) { } 

только тогда вы сможете использовать this.router.

4
<button type="button" class="btn btn-primary-outline pull-right" (click)="btnClick();"><i class="fa fa-plus"></i> Add</button> 


import { Router } from '@angular/router'; 

btnClick= function() { 
     this.router.navigate(['/user']); 
}; 
+0

Если функция btnClick помещается в класс экспорта AppModule {} ?? – Jurassic

8

Вы можете использовать routerLink следующим образом

<input type="button" value="Add Bulk Enquiry" [routerLink]="['../addBulkEnquiry']" class="btn"> 

или использовать <button [routerLink]="['./url']"> в вашем случае, для получения дополнительной информации вы можете прочитать всю StackTrace на GitHub https://github.com/angular/angular/issues/9471

другие методы тоже правильно, но они создают зависимость от файла компонента.

Надеюсь, ваша забота решена.

+1

Только то, что я искал, спасибо. –

Смежные вопросы