AngularJSのng-switchを使って、同じHTMLファイル内にある複数のHTMLテンプレートを選択して表示を切替える事ができます。
デモとコードサンプルはこちら。
別の記事で紹介したng-includeでも条件に応じてHTMLテンプレートの表示を切替える事ができますが、ng-includeはアクセスがあった時点で外部HTMLをダウンロードしてから表示します。
一方、ng-switchでは同じHTMLファイル内に記述されているのでアクセスに関わらずダウンロード済みで、選択に応じて表示を切替えます。
下記のようにラジオボタンで選択した値(変数switch)の値に応じてHTMLテンプレートが選択されて表示されます。
何も選択されていない場合は、ng-switch-defaultで指定した内容が表示されます。
<form>
<input type="radio" ng-model="switch" value="list">リスト
:
</form>
<div ng-switch on="switch">
<div ng-switch-when="table">
:
:テンプレートHTML
:
</div>
<div ng-switch-when="list">
:
:テンプレートHTML
:
</div>
<div ng-switch-when="accordion">
:
:テンプレートHTML
:
</div>
<div ng-switch-default>
上のラジオボタンで選択したフォーマットでデータが表示されます。
</div>
</div>