我有一个看起来像这样的角度模板......
<div ng-repeat="message in data.messages" ng-class="message.type">
<div class="info">
<div class="type"></div>
<div class="from">From Avatar</div>
<div class="createdBy">Created By Avatar</div>
<div class="arrowTo">
<div class="arrow"></div>
<div class="to">To Avatar</div>
</div>
<div class="date">
<div class="day">25</div>
<div class="month">Dec</div>
</div>
</div>
<div class="main">
<div class="content">
<div class="heading2">{{message.title}}</div>
<div ng-bind-html="message.content"></div>
</div>
</div>
<br />
<hr />
<br />
</div>
我已经设置了一个 JSfiddle来显示正在绑定的数据。
我需要做的是根据数据内容有条件地显示“from”、“to”和“arrowTo”div。
日志是这样的...
- 如果数据中有“from”对象,则显示“from”div 并绑定数据,但不显示“createdBy”div。
- 如果没有“from”对象但有“createdBy”对象,则显示“createdBy”div 并绑定数据。
- 如果数据中有“to”对象,则显示“arrowTo”div 并绑定它的数据。
或者用简单的英语,如果有发件人地址,则显示它,否则显示谁创建了记录,如果有收件人地址,则也显示。
我已经研究过使用 ng-switch 但我认为我必须添加额外的标记,如果没有数据,这将留下一个空的 div。另外,我需要嵌套 switch 指令,我不确定这是否可行。
有任何想法吗?
更新:
如果我要编写自己的指令(如果我知道怎么做!)那么这里有一些伪代码来展示我想如何使用它......
<div ng-if="showFrom()">
From Template Goes Here
</div>
<div ng-if="showCreatedBy()">
CreatedBy Template Goes Here
</div>
<div ng-if="showTo()">
To Template Goes Here
</div>
如果函数/表达式评估为假,这些中的每一个都会消失。