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

时间:2016-08-25 14:15:27

标签: angularjs angularjs-ng-repeat ng-repeat

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

如果我这样做:

<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.comhrefs除了只是为了让阅读更清晰),将是:

<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>

的情况下执行此操作

1 个答案:

答案 0 :(得分:1)

如果您想保持结构相同,可以使用ng-repeat-startng-repeat-end。查看https://docs.angularjs.org/api/ng/directive/ngRepeat并查找特殊重复开始和结束点部分