いつもお世話になっております。
前提・実現したいこと
htmlにTABLEで一覧を表示しようとしております。
その際、先頭の列を見出しとして複数列にまたがる表示をしようとしています。
例えば会社名、契約番号、契約名称を表示する契約一覧において、
同じ会社名ごとにまとめて出力しようとしています。
発生している問題・エラーメッセージ
同じ会社名の1件目のデータ出力時のみ会社名を出力し、同じ会社名のデータ件数分の
rowspanで結合して出力しよいとしました。
1件目のデータかどうかを foreach の $index の値を参照して判別しようとしたのですが、
if文か必ず true となってしまっているらしく、毎行ごとに会社名が表示されてしまいました。
foreach 内で何件目のデータかを判別して出力の有無を制御する方法について
ご存じでしたらご教授のほどよろしくお願いいたします。
該当のソースコード
Array型の companyList に会社ごとのデータを格納し、その中の Array型変数 contractList に契約ごとのデータを格納する入れ子構造でデータを保持しています。
companyList.payCompNameに会社名、companyList.groupCount に当該会社の契約件数を格納し以下のようなコードで作成しました。
~前略~ <tbody> <!--ko foreach: companyList--> <!--ko foreach: contractList--> <tr> <!--ko data-bind="if: $index === 0"--> <td data-bind="attr: { rowspan: $parent.groupCount }"> <span data-bind="text: $parent.payCompName"></span> </td> <!--/ko--> <td> <span data-bind="text: agreeNo"></span> </td> <td> <span data-bind="text: agreeName"></span> </td> </tr> <!--/ko--> <!--/ko--> </tbody>コード ~後略~
試したこと
<!--ko data-bind="if: $index === 0"-->の部分をdata-bindを用いず、単純に
<!--ko if: $index === 0-->としたところ常にfalseとなり会社名は出力されなくなりました。
また、$indexを$data.$index に変更したり、foreachの宣言を
$indexを cont.$index に変更してみましたが同様の結果でした。
あなたの回答
tips
プレビュー