アイテムのリストがあります。アイテムにはさまざまなものがあります。たとえば、リストが次のようなものであるとします。
[userObject , vehicleObject , userObject , animalObject , animalObject]
次に、オブジェクトのタイプに応じてテンプレートを使用するngRepeatディレクティブを使用してリストをレンダリングします(ポリモーフィックレンダリング)。これはできますか?
多分(ng-useはhypotheticallyディレクティブ)のようなものです:
<ul>
<li ng-repeat="item in items">
<img ng-use="item.type == 'user'" ng-src="item.src">
<a ng-use="item.type == 'vehicle'">{{item.link}}</a>
<span ng-use="item.type == 'animal'">{{item.name}}</span>
</li>
</ul>
<ul>
<li ng-repeat="item in items" ng-switch="item.type">
<img ng-switch-when="user" ng-src="item.src">
<a ng-switch-when="vehicle">{{item.link}}</a>
<span ng-switch-when="animal">{{item.name}}</span>
</li>
</ul>
APIリファレンス:
http://docs.angularjs.org/api/ng.directive:ngSwitch
これはng-switchを使用しませんが、@ DotNetHaggisが指摘したtypeフィールドがないという問題を回避します。
<div ng-repeat="field in fields">
<div ng-if="field.user !== undefined">user info</div>
<div ng-if="field.vehicle !== undefined">vehicle info</div>
<div ng-if="field.animal !== undefined">animal info</div>
</div>