【发布时间】:2013-12-07 16:24:02
【问题描述】:
我有一个显示产品信息的 div 列表。核心信息是相同的,但某些字段仅针对某些产品类型显示或隐藏(通过 ng-show/ng-hide)。这很好用,但我们希望以交替样式(斑马条纹)显示行以提高可读性。怎么能做到这一点,因为如果我隐藏一行,我们最终会得到两行具有相同样式的行? HTML 的格式为:
<div style="alt-1">
<div class="col-md-3 list-item-odd">Location</div>
<div class="col-md-9 list-item-odd" >{{ location }}</div>
</div>
<div ng-show="itemType == 1" style="alt-2">
<div class="col-md-3 list-item-odd">Layout Type</div>
<div class="col-md-9 list-item-odd" >{{ layoutType}}</div>
</div>
<div style="alt-1">
<div class="col-md-3 list-item-odd">Category</div>
<div class="col-md-9 list-item-odd" >{{ category }}</div>
</div>
如本例所示,如果 itemType != 1 我们以两个相邻的行结束,样式为“alt-1”。
我的一个想法是在 ng-show(或 ng-hide)完成后编写一个优先级较低的指令(以下示例中的替代样式)来遍历 DIV。
<div class="enclosing" alternate-styles>
HTML from above
</div>
但是,有两件事困扰着我。一,行不通。我总是对 Angular 中的某些东西感到惊讶。第二,我有一种挥之不去的怀疑,即我让我的 jQuery 经验让我对明显的 Angular 解决方案视而不见。
意见和/或建议?
谢谢,
杰瑞
【问题讨论】:
-
你能使用 ng-repeat 和docs.angularjs.org/api/ng.directive:ngClassEven吗?
-
我想过,但是我必须创建大量字段和提示,然后动态填写表单的每个部分。这是一种选择,但我不喜欢使用它,因为它与应用程序中的所有其他布局不同。
标签: css angularjs angularjs-directive