前提・実現したいこと
こことここのコードを参考に、Ag-Grid内に表示させたボタンにRouterLinkの機能を持たせたいのですが、どのようにすればいいか分からずに困っております。
View側(HTML)で遷移処理を設定せずに、Component側で画面遷移の処理を行う様にしたいです。
また、そのときに当該行の情報を保持したまま(make, model, priceの値)画面遷移するようにしたいです。
↑サンプルではボタンを押すとJSON情報が表示されるが、URL変化を伴う画面遷移をしたいです。
発生している問題・エラーメッセージ
// Author: T4professor import { Component } from '@angular/core'; import { ButtonRendererComponent } from './renderer/button-renderer.component'; @Component({ selector: 'my-app', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { name = 'Angular 6'; frameworkComponents: any; rowDataClicked1 = {}; rowDataClicked2 = {}; constructor() { this.frameworkComponents = { buttonRenderer: ButtonRendererComponent, } } columnDefs = [ { headerName: 'Button Col 1', cellRenderer: 'buttonRenderer', cellRendererParams: { onClick: this.onBtnClick1.bind(this), label: 'Click 1' } }, { headerName: 'Button Col 2', cellRenderer: 'buttonRenderer', cellRendererParams: { onClick: this.onBtnClick2.bind(this), label: 'Click 2' } }, { headerName: 'Model', field: 'model' }, { headerName: 'Price', field: 'price' } ]; rowData = [ { make: 'Toyota', model: 'Celica', price: 35000 }, { make: 'Ford', model: 'Mondeo', price: 32000 }, { make: 'Porsche', model: 'Boxter', price: 72000 } ]; //ここを変えてコンポーネント側でURL指定するようにしたい onBtnClick1(e) { this.rowDataClicked1 = e.rowData; } onBtnClick2(e) { this.rowDataClicked2 = e.rowData; } }
試したこと
このサイトを参考にComponent側で画面遷移の処理として
this.router.navigate([""]);などが考えられたのですが、この場合どうやって当該行の情報を保持するかが分からずに困っております。
補足情報(FW/ツールのバージョンなど)
Angular CLI: 12.2.7
Node: 16.9.0 (Unsupported)
Package Manager: npm 7.21.1
OS: win32 x64
Angular:
...
Package Version
@angular-devkit/architect 0.1202.7 (cli-only)
@angular-devkit/core 12.2.7 (cli-only)
@angular-devkit/schematics 12.2.7 (cli-only)
@schematics/angular 12.2.7 (cli-only)
申し訳ありませんがどのたかご教授お願い致します。
あなたの回答
tips
プレビュー