私は現在、いくつかの異なる があるプロジェクトに取り組んでおりTasks
、それぞれTask
にデータを表示する独自の方法があります。それらは、個々のコントローラーとビューを必要としないマイナーなデータ変更です。
たとえば、あるタスクの見出しに が表示されているUsername
場合、次のタスクではユーザー名が不要で、 に置き換えられますBehavior
。
これが私が今していることです:
<div id="event-list">
<ul>
<li ng-click="isHidden=!isHidden;" ng-repeat="event in events" ng-init="isHidden=false;">
<!-- Template 1 -->
<div ng-if="taskCategory == 'taskExampleOne'">
<div class="heading">
<h1>{{event.EventName}}</h1>
<p class="description">Username: {{ event.User.Name }}</p>
<p class="date">{{ event.RecordDateUtc | moment: 'MM/DD/YYYY' }}</p>
</div>
<div ng-show="isHidden" class="body event-show-hide-animation">
<img src="{{ event.SnapshotJpg }}" />
<dl>
<dt>Record Date: </dt>
<dd>{{ event.RecordDateUtc | moment: 'MM/DD/YYYY HH:MM A' }} {{ event.RecordDateTz }}</dd>
</dl>
<button type="button" class="btn btn-primary" ng-click="viewEventDetails( event )">View Event</button>
</div>
</div>
<!-- End Template 1 -->
<!-- Template 2 -->
<div ng-if="taskCategory == 'taskExampleTwo'">
<div class="heading">
<h1>{{event.EventName}}</h1>
<p class="description">
<span>Username: {{ event.User.Name }}</span>
<span>Behavior: {{ event.BehaviorNames }}</span>
</p>
<p class="date">{{ event.RecordDateUtc | moment: 'MM/DD/YYYY' }}</p>
</div>
<div ng-show="isHidden" class="body event-show-hide-animation">
<dl>
<dt>Event: </dt>
<dd>{{ event.EventId }}</dd>
<dt>Group: </dt>
<dd>{{ event.QueryKey.GroupIds[0] }}</dd>
<dt>Record Date: </dt>
<dd>{{ event.RecordDateUtc | moment: 'MM/DD/YYYY HH:MM A' }} {{ event.RecordDateTz }}</dd>
</dl>
<button type="button" class="btn btn-primary" ng-click="viewEventDetails( event )">View Event</button>
</div>
</div>
<!-- End Template 2 -->
</li>
</ul>
</div>
そのため、要素を繰り返すことでかなりの無駄がありますが、ng-if
情報ごとに大量の条件を設定するよりも、テンプレート全体を分割した方が少し読みやすいように感じます。
これらのテンプレートを処理するより良い方法はありますか?