簡體   English   中英

Angular:按鈕上有路由器鏈接

[英]Angular: Having a routerlink on a button

我正在嘗試使用routerlink,但遇到了一些問題。 單擊該按鈕不會執行任何操作。 我可以直接通過 url 導航到該頁面,並且路線很好

我想 go 到 /addEditControl/{{controlId}}

SelfServiceDetails.component.ts 中的 controlId 是輸入

@Component({
selector: 'self-service-details',
templateUrl: '../templates/self-service-details.component.html',
providers: [SelfServiceDetailsService,ControlSpecificDataService]
})

export class SelfServiceDetailsComponent {
@Input() controlId: string; 

}}

在我的 HMTL 組件中,我正在像這樣在按鈕上設置路由器

<button  routerLink="/addEditControl/{{controlId}}">Onboard Control</button>

我的應用路由模塊

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

  import {ControlsListComponent} from './components/controls-list.component';
  import {ControlDetailsComponent} from './components/controlDetails.component';
  import {ControlHistoryListComponent} from './components/control-history-list.component';
 import {MyControlsComponent} from './components/myControls.component';
  import {SnowDataComponent} from './components/snowData.component';
 import {PageNotFoundComponent} from './components/pageNotFound.component';
 import { LandingPageComponent } from 'app/components/landingPage.component';
 import { HomePageComponent } from './components/home-page.component';
 import { ControlDetailGuard } from './services/control-detail-guard.service';
 import { AddEditControlComponent } from './SelfServiceForm/add-edit-control.component';

 const routes: Routes = [
 { path: 'addEditControl/:id', component: AddEditControlComponent},  

 ];
@NgModule({
 imports: [ RouterModule.forRoot(routes) ],
 exports: [ RouterModule ]
  })
export class AppRoutingModule {}

編輯: controlId 被正確填充,我已經用<p>{{controlId}}</p>進行了測試

對於動態鏈接,您應該做以下事情

動態屬性綁定

<button  [routerLink]="['/addEditControl', controlId ]">Onboard Control</button>

您應該在這樣的按鈕上使用 RouterLink:

[routerLink]="['/admin/home', param to pass]"

您需要在 routerLink 周圍包含 []。

這不是應該如何做的。 如果您想使用按鈕導航,請調用 function 並傳遞您要導航的字符串 => addEditControl('controlID')

在你的 .ts 文件中:

import { Router } from '@angular/router';
  constructor(private router: Router) { }

addEditControl(link:string) {
this.router.navigate([link]);
}

解決方案1:將您的按鈕放在一個href中:

<a routerLink="/addEditControl/{{controlId}}"><button class="btn btn-success pull-right" > Onboard Control</button></a>

解決方案2: onClick 按鈕導航到您的頁面!

import { Router } from '@angular/router';
constructor(private router: Router) { }
    onClick= function () {
            this.router.navigateByUrl('/addEditControl/'+this.controlId);
    };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM