ng-repeat,没有HTML元素
ng-repeat without an html element
我正在尝试生成一个博客列表,但是我在使用ng-repeat时遇到了问题。 我的列表如下所示
<ul>
<li>
<h2>Title</h2>
<p>Message</p>
</li>
<li>
<h2>Title</h2>
<p>Message</p>
</li>
<span class="sep2"></sep>
<li>
<h2>Title</h2>
<p>Message</p>
</li>
<li>
<h2>Title</h2>
<p>Message</p>
</li>
<span class="sep2"></sep>
<li>
<h2>Title</h2>
<p>Message</p>
</li>
<li>
<h2>Title</h2>
<p>Message</p>
</li>
</ul>
因此,在每 2 个列表项之后,我有一个跨度来调平我接下来的 2 个框。现在我有这个角度代码。
<ul>
<li ng-repeat="post in postsJSON">
<h2>{{post.title}}</h2>
<p>{{post.message}}</p>
</li>
</ul>
而且我不知道如何在每隔一个列表项之后生成该跨度。提前谢谢你,丹尼尔!
使用
angular v1.2 变得非常简单,使用 ng-repeat-start
、 ng-repeat-end
和 ng-if
,您可以在此处查看: http://jsfiddle.net/DotDotDot/XNJvj/1/
您的代码将如下所示:
<ul>
<li ng-repeat-start='post in postsJSON'>
{{post.item}}<br/>
{{post.message}}
</li>
<span ng-if="$odd && !$first" ng-repeat-end>
<span class="sep2">_____</span>
</span>
</ul>
ng-repeat-start/end
允许您在一个标签中输入一个循环并在另一个标签中关闭它,在这种情况下,我还使用 ng-repeat
的 $odd 参数添加了一个条件,仅显示每隔一个跨度
这里的问题不在于角度,而在于标记的结构。 UL 标签通常只应包含 li 标签作为子标签。
为了解决您的问题,我将坚持使用您已经拥有的ng重复并使用css创建分隔符。像这样:
<ul class="blog list">
<li ng-repeat="post in postsJSON" class="blog entry">
<h2>{{post.title}}</h2>
<p>{{post.message}}</p>
</li>
</ul>
.CSS:
.blog.entry {
border-bottom : 1px solid black // or whatever color
...
}
或者,如果您需要对分隔符进行更多控制,请使用 css :after 并执行以下操作
.blog.entry:after {
content : "";
...
}
如果你不熟悉:之后你可以看看那里
相关文章:
- 我应该怎么做才能避免在网页上移动元素(html、css、jQuery)
- 更改元素HTML,但忽略最后一个子项
- 增加在选择元素HTML中搜索的时间
- Jquery无法获取元素html
- 从所选元素 html 上方的元素获取属性值
- 在 JS 的单选按钮元素 (HTML) 中使用 title 属性
- 如何在页面上播放每个音频元素(HTML,JQuery,Javascript)
- 我需要一种新的方法来检测元素 HTML 是否有更改
- 获取父元素 html 以及子内容
- AngularJS指令:如何在ng-repeat中动态更改元素html
- html 属性中的引号被标记为 ”来自元素.html()的结果
- 在指令's链接中替换angular元素html
- 如果元素有子元素html元素
- 如何下推表格中的元素- HTML
- 如何在纯javascript中使用变量插入数组值,如元素HTML
- jQuery textilate .js -如何“重置”元素HTML并重新启动动画
- 将元素HTML附加到新附加的textarea中
- 在添加类的情况下,CSS 3的过渡是否不能与模板元素(HTML 5)一起工作?
- jQuery没有更新DOM元素HTML
- 在jQuery中更快地替换元素HTML