我有一个看起来像这样的有角模板...
<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。
- 如果没有“来自”对象,但是有“ 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>
如果函数/表达式评估为false,则每一个都将消失。