如何列出数组中每个项目的两个元素?

How do I list two elements per item in array?

我每个用户有几个电子邮件地址,我想为每个地址提供两个选项;一种是直接发送电子邮件,另一种是通过网络表单发送消息。但是如何在单个 ngRepeated 元素下加入两个 <li> 元素?

如果我这样做:

<span ng-repeat="email in User.emails">
 <li><a ng-attr-href="mailto:{{ email }}">Email {{ email }}</a></li>
 <li><a ng-href="#/SendMessage?email={{ email }}">Send message to {{ email }}</a></li>
</span>

然后我打破了 HTML 结构和语义。

如果我这样做:

 <li ng-repeat="email in User.emails"><a ng-attr-href="mailto:{{ email }}">Email {{ email }}</a></li>
 <li ng-repeat="email in User.emails"><a ng-href="#/SendMessage?email={{ email }}">Send message to {{ email }}</a></li>

然后电子邮件不按顺序排列(因为首选顺序是先给出主电子邮件地址)。

所以理想的输出,假设你的电子邮件地址是 chuck.norris@example.orgchuck@example.com(不包括 hrefs 只是为了让阅读更清楚),将是:

<ul>
 <li><a href="...">Email chuck.norris@example.org</a></li>
 <li><a href="...">Send message to chuck.norris@example.org</a></li>
 <li><a href="...">Email chuck@example.com</a></li>
 <li><a href="...">Send message to chuck@example.com</a></li>
</ul>

如何在不将不允许的元素添加到 <ul> 的情况下执行此操作?

如果要保持结构不变,可以使用 ng-repeat-startng-repeat-end。查看 https://docs.angularjs.org/api/ng/directive/ngRepeat 并查找 特殊重复起点和终点 部分