AngularJSでラジオボタンの選択値を動的に取得する方法
AngularJSでラジオボタンの選択値を動的に取得できない問題の解決法
ng-repeatなどでリストを表示している際、ラジオボタンの選択値を動的に取得したいケースはよくあります。しかし、ng-modelに同じ変数をそのままバインドすると、すべての行で選択状態が共有されてしまい、意図した通りに動作しません。
解決策:ng-modelに$indexを追加する
この問題を解決するには、各ラジオボタンのng-modelに$indexを追加します。$indexはng-repeatブロック内で各行のインデックス番号を表す特殊なスコープ変数のため、これを利用することで行ごとに独立したモデルとして値を管理できるようになります。
<td><input type="radio" ng-model="classes.satisfies[$index]" value="Country1"> インド</td>
<td><input type="radio" ng-model="classes.satisfies[$index]" value="Country2"> アメリカ</td>
上記のように記述すると、classes.satisfiesが配列として扱われ、各行のラジオボタンの選択結果が対応するインデックスに格納されます。その結果、AngularJSでもラジオボタンの選択値を動的に取得できるようになります。
実装時のポイント
- $indexはng-repeatディレクティブの内部でのみ使用できるスコープ変数です。
- ng-modelを配列形式([$index])にすることで、複数行のデータを個別に扱えます。
- コントローラー側で
$scope.classes.satisfies = []のように配列として初期化しておくと、未定義エラーを防げて安全です。
-
JavaScriptでURLからGETパラメータの値を取得する方法
JavaScriptでは、URLオブジェクトとsearchParamsプロパティを組み合わせることで、URLに含まれるGETパラメータ(クエリ文字列)の値を簡単に取得できます。本記事では、実際のコード例とともにその手順をわかりやすく解説します。 実装例 以下は、サンプルURL「https://www.google.com?imageSize=440&color=blue」から、imageSizeとcolorという2つのGETパラメータの値を取り出して画面に表示するコード例です。 <!DOCTYPE html> <html lang=ja> <head>
-
MongoDBで特定の値の出現回数(カウント)を取得する方法
MongoDBで特定の値のカウントを取得するには?MongoDBで配列内の特定の値が出現する回数を数えたい場合は、aggregate()メソッドを使用します。この記事では、実際にコレクションを作成しながら、特定の値(例:「Robert」)が配列内に何回含まれているかを集計する手順を詳しく解説します。1. コレクションへのドキュメントの挿入まずはinsertOne()メソッドを使って、サンプルとなるコレクションを作成しましょう。> db.demo210.insertOne(... {... &nbs