我需要创建一个以逗号分隔的项目列表:
<li ng-repeat="friend in friends">
<b ng-repeat="email in friend.email">{{email}}{{$last ? '' : ', '}}</b>...
</li>
Run Code Online (Sandbox Code Playgroud)
根据AngularJS文档,表达式中不允许使用控制流语句.这就是我{{$last ? '' : ', '}}无法工作的原因.
是否有另一种创建逗号分隔列表的方法?
编辑1
有一些比以下更简单:
<span ng-show="!$last">, </span>
Run Code Online (Sandbox Code Playgroud) 我需要使用ng-repeat(在AngularJS中)列出数组中的所有元素.
复杂的是,数组的每个元素都将转换为表的一行,两行或三行.
我无法创建有效的html,如果ng-repeat在元素上使用,因为在<tbody>和之间不允许任何类型的重复元素<tr>.
例如,如果我使用ng-repeat <span>,我会得到:
<table>
<tbody>
<span>
<tr>...</tr>
</span>
<span>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
</span>
<span>
<tr>...</tr>
<tr>...</tr>
</span>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
这是无效的HTML.
但我需要生成的是:
<table>
<tbody>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
其中第一行由第一个数组元素生成,接下来的三个由第二个数据生成,第五个和第六个由最后一个数组元素生成.
如何在渲染过程中使用ng-repeat以使其绑定的html元素"消失"?
或者还有另一个解决方案吗?
澄清:生成的结构应如下所示.每个数组元素可以生成1-3行的表.理想情况下,答案应该支持每个数组元素0-n行.
<table>
<tbody>
<!-- array element 0 -->
<tr>
<td>One row item</td>
</tr>
<!-- array element 1 -->
<tr>
<td>Three row item</td>
</tr>
<tr>
<td>Some product details</td>
</tr>
<tr>
<td>Customer ratings</td>
</tr>
<!-- array element …Run Code Online (Sandbox Code Playgroud) 我有一个项目清单......
$scope.Users =[{
UserName: ''
}];
Run Code Online (Sandbox Code Playgroud)
在我看来,我想列出这样的假设我只有4个项目 $scope:Users
Username1, Username2, Username3 and Username4
<span data-ng-repeat="user in Users">{{user.Username}}</span>{{$last ? '' : ', '}}
Run Code Online (Sandbox Code Playgroud)
上面的表达式基本上会在每个项目后添加逗号并且工作正常.
我的问题是如何and在最后一个项目之前添加一个关键字,所以它会像:
Username1, Username2, Username3 and Username4
Run Code Online (Sandbox Code Playgroud)
代替:
Username1, Username2, Username3, Username4
Run Code Online (Sandbox Code Playgroud)