質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

1508閲覧

Angular URLで状態管理 クエリパラメータを取得し、特定のアドレスバーで表示したい

A4UxdAF799hT6WT

総合スコア5

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

1クリップ

投稿2021/08/13 11:28

実現したいこと

    1. /route-practice という route でアクセスできるページを作成する

ページは <input><button> を持つ

    1. テキストを入力し、ボタンを押下すると、URL が /route-practice?text=<入力中の値> に書き換わる
    1. ブラウザのアドレスバーで直接 /route-practice?text=foo の形でページを開いたとき、 query parameter から入力フォームにテキストを復元する

詰まっているところ

  • 3で詰まっている
  • クエリパラメータの取得し、指定のアドレスバーへの指定

html

1 <input id="new-hero" #addText /> 2 <button class="add-button" (click)="addtext(addText.value); addText.value=''">test</button> 3

ts

1 ngOnInit(): void { 2 this.route.snapshot.queryParams.get(this.text); 3 } 4 5 addtext(name: string): void { 6 name = name.trim(); 7 if (!name) { return; } 8 this.router.navigate([ '/route-practice' ], { queryParams: { text: name,} } 9 ); 10 }

すみませんが知識をお借りしたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんな感じでしょうか?
まずts 側にメンバー変数を用意します。

TypeScript

ts

1paramFromQuery: string | null = null;

次にngOnInit() でクエリパラメータを受け取りと、先ほどのメンバー変数への代入をします。

TypeScript

ts

1ngOnInit(): void { 2 this.paramFromQuery = this.route.snapshot.queryParamMap.get('text'); 3}

最後にHTML 側にTS のメンバー変数を紐づけます。

HTML

html

1<input id="new-hero" #addText [value]="paramFromQuery" /> 2<button class="add-button" (click)="addtext(addText.value); addText.value=''">test</button>

※TypeScript 設定でnullable のあたりをいじっちゃったので、少し違うコードに見えるかもですがご容赦くださいm(_ _)m

投稿2021/08/14 12:04

tshion

総合スコア65

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

A4UxdAF799hT6WT

2021/08/15 02:34

無事できました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問