9

AngularJS を使用して、イベント リストのテーブルを作成しようとしています。ただし、各イベントにはタイプがあり、タイプの異なるイベントは内容が大幅に異なり、タイプによっては複数の行が生成されることもあります。

完璧な世界では、次のようにします。

<tbody>
  <ng-repeat="event in events">
    <ng-switch on="event.type">
      <ng-switch-when="type1">
        <tr>
          ...
        </tr>
        <tr>
          ...
        </tr>
      </ng-switch-when>
      <ng-switch-when="type2">
        <tr>
          ...
        </tr>
      </ng-switch-when>
      ...
    </ng-switch>
  </ng-repeat>
</tbody>

ただし、ほとんどのブラウザーは ng タグを破棄または再配置して、tbody に trs のみが含まれるようにするため、これは機能しません。

関連する問題 ( html 要素なしで ng-repeat を使用する方法) に対して私が見た唯一の解決策は、複数の tbody 要素を持つことです。私はそれをしたくないのですが、tbody に ng-repeat および ng-switch 属性を与えてこれを行ったとしても、複数の tr を 1 つの ng-switch-when にラップできないという問題がまだあります。 .

AngularJS でこれを行う方法はありますか、それとも不可能ですか?

4

2 に答える 2

2

私はこの問題に遭遇しました。最善のアドバイスは、テーブルを使用しないことです:

tr や td と同じように * 子 div クラスの量で親 div id を実行するだけです...

私はAngularソースでこれをチェックしていませんが、テーブル要素が何らかの形で絡み合っていないと仮定しています..

于 2013-01-27T14:45:14.033 に答える
1

おそらく最良のオプションは、type1/type2 に基づいて適切なマークアップを生成するディレクティブでしょうか?

おそらく ng-hide/ng-show でそれを行うこともできますが、それは余分な不要なマークアップを生成します

于 2013-01-28T19:45:44.660 に答える