質問: ### 前提・実現したいこと Monacaでアプリ開発をしています。並び替えてリスト表示したテーブル内容をタップして、タップしたリストの詳細画面を表示しようとしていますが、インデックスの受け渡しがうまくいっておりません。 ### 発生している問題・エラーメッセージ ng-repeatでテーブルの内容をリスト出力する際、orderByにて並び替えをしています。続いて並び替えたリストをタップして詳細画面に遷移する際、選択したリストと異なる詳細画面が表示されてしまいます。詳細画面を表示する関数にリストのインデックス番号($index)を渡していますが、インデックス番号と紐づく情報が並び替え前の情報であるため、正しい詳細内容が表示されないようです。以下に例を示します。 並び替え前: A 埼玉 32歳 B 千葉 19歳 C 東京 28歳 年齢(xx歳)を昇順で並び替え後: B 千葉 19歳 →選択すると「A 埼玉 32歳」の詳細画面が表示される C 東京 28歳 A 埼玉 32歳 このため、並び替え後の一番上の「B 千葉 19歳」の詳細を表示しようとしても、並び替え前の一番上に位置していた「A 埼玉 32歳」が表示されてしまいます。どのリストが選択されたかは後続に$indexを渡して判断しておりましたが、このような場合はどうすればよいかご教授願えますでしょうか。 ### 補足情報(言語/FW/ツール等のバージョンなど) Monaca Core Utility バージョン:2.0.6 AngularJS v1.5.9 Onsen UI (Monaca Version) バージョン:2.3.2
回答: $indexにこだわる必要が無いのであれば、ng-repeatで指定した繰り返し用の変数を後続に渡すのは如何でしょうか? こうすると、恐らく並び替えられた後のオブジェクトそのものが後続に渡せるのではないかと思います。 以下の例ではItemを関数に渡しています。 ``` {{Item.code}}:{{Item.name}} ```