将数组项映射到重复列表
Mapping array items to repeated list
这是我想要实现的目标的简单版本:
$scope.colors = [{ "Name": "Red" },{ "Name": "Orange" },{ "Name": "Yellow" }];
<ul>
<li>{{colors[0].Name}}</li>
<li>{{colors[1].Name}}</li>
<li>{{colors[2].Name}}</li>
<li></li>
<li></li>
</ul>
但我想更动态地进行。也就是说,重复 5 个列表项,每个列表项包含数组 colors
中的一个项目,该数组最多可包含 5 个项目(在本例中为 3)。
你可以这样做,但你会在这里得到一个额外的跨度..
<ul>
<li ng-repeat="i in [1,2,3,4,5]">
<span ng-if="i<=colors.length">{{colors[i].name}}</span>
</li>
</ul>
在 maandoo 的回答中,您会在每个 <li>
之间添加一个额外的 <span>
元素。 Angular 现在支持表达式中的三元运算符,因此如果您不想显示跨度,可以简单地解决以下问题:
<ul>
<li ng-repeat="i in [0,1,2,3,4]">
{{colors[i] ? colors[i].Name : ''}}
</li>
</ul>
这还有一个额外的好处,即从您的代码中删除 5 个观察者,因为删除了 5 个 ng-if
语句。
这是我想要实现的目标的简单版本:
$scope.colors = [{ "Name": "Red" },{ "Name": "Orange" },{ "Name": "Yellow" }];
<ul>
<li>{{colors[0].Name}}</li>
<li>{{colors[1].Name}}</li>
<li>{{colors[2].Name}}</li>
<li></li>
<li></li>
</ul>
但我想更动态地进行。也就是说,重复 5 个列表项,每个列表项包含数组 colors
中的一个项目,该数组最多可包含 5 个项目(在本例中为 3)。
你可以这样做,但你会在这里得到一个额外的跨度..
<ul>
<li ng-repeat="i in [1,2,3,4,5]">
<span ng-if="i<=colors.length">{{colors[i].name}}</span>
</li>
</ul>
在 maandoo 的回答中,您会在每个 <li>
之间添加一个额外的 <span>
元素。 Angular 现在支持表达式中的三元运算符,因此如果您不想显示跨度,可以简单地解决以下问题:
<ul>
<li ng-repeat="i in [0,1,2,3,4]">
{{colors[i] ? colors[i].Name : ''}}
</li>
</ul>
这还有一个额外的好处,即从您的代码中删除 5 个观察者,因为删除了 5 个 ng-if
语句。