ng-repeat 显示第一类项目的副标题
ng-repeat show subtitle for first type of item
我有一个 objects 的列表,除了类型之外,所有字段都相同。我想在呈现此类项目之前在 ng-repeat 中显示一个副标题。现在我有 x ng-repeats 用于 x 类型的项目并且它变得难以管理。除了字幕外,这些块都是一样的。假设范围数组没有分散的类型,它们按其类型细分。例如,渲染时我想展示这个。
渲染
Cats
cat 1
cat 2
cat 3
Dogs
dog 1
dog 2
dog 3
Lizards
lizard 1
lizard 2
lizard 3
型号
$scope.animals = [
{ name: "cat 1", type: "cat" },
{ name: "cat 2", type: "cat" },
{ name: "cat 3", type: "cat" },
{ name: "dog 1", type: "dog" },
{ name: "dog 2", type: "dog" },
{ name: "dog 3", type: "dog" },
{ name: "lizard 1", type: "lizard" },
{ name: "lizard 2", type: "lizard" },
{ name: "lizard 3", type: "lizard" }
];
查看
<div ng-repeat="animal in animals">
<!-- if first animal type appearing show subtitle -->
{{animal.name}}
</div>
我不想像现在这样构建我的数据并呈现冗余 ng-repeats。
型号
$scope.cats = [
...
];
$scope.dogs = [
...
];
$scope.lizards = [
...
];
查看
<h2>Cats</h2>
<div ng-repeat="cat in cats">
{{cat.name}}
</div>
<h2>Dogs</h2>
<div ng-repeat="dog in dogs">
<h2>Dogs</h2>
{{dog.name}}
</div>
<h2>Lizards</h2>
<div ng-repeat="lizard in lizards">
{{lizard.name}}
</div>
提前致谢!
您需要检查类型是否与之前的类型不同。您可以使用 $index - 1
获得此物品
<div ng-repeat="animal in animals">
<h1 ng-if="animal.type != animals[$index - 1].type">
{{ animal.type }}
</h1>
{{animal.name}}
</div>
尝试访问 ng-repeat
循环的前一个元素并将其类型与当前元素的类型进行比较。如果类型不同,则必须显示字幕。
有关如何获取前一个元素的信息,请参阅此question。
我有一个 objects 的列表,除了类型之外,所有字段都相同。我想在呈现此类项目之前在 ng-repeat 中显示一个副标题。现在我有 x ng-repeats 用于 x 类型的项目并且它变得难以管理。除了字幕外,这些块都是一样的。假设范围数组没有分散的类型,它们按其类型细分。例如,渲染时我想展示这个。
渲染
Cats
cat 1
cat 2
cat 3
Dogs
dog 1
dog 2
dog 3
Lizards
lizard 1
lizard 2
lizard 3
型号
$scope.animals = [
{ name: "cat 1", type: "cat" },
{ name: "cat 2", type: "cat" },
{ name: "cat 3", type: "cat" },
{ name: "dog 1", type: "dog" },
{ name: "dog 2", type: "dog" },
{ name: "dog 3", type: "dog" },
{ name: "lizard 1", type: "lizard" },
{ name: "lizard 2", type: "lizard" },
{ name: "lizard 3", type: "lizard" }
];
查看
<div ng-repeat="animal in animals">
<!-- if first animal type appearing show subtitle -->
{{animal.name}}
</div>
我不想像现在这样构建我的数据并呈现冗余 ng-repeats。
型号
$scope.cats = [
...
];
$scope.dogs = [
...
];
$scope.lizards = [
...
];
查看
<h2>Cats</h2>
<div ng-repeat="cat in cats">
{{cat.name}}
</div>
<h2>Dogs</h2>
<div ng-repeat="dog in dogs">
<h2>Dogs</h2>
{{dog.name}}
</div>
<h2>Lizards</h2>
<div ng-repeat="lizard in lizards">
{{lizard.name}}
</div>
提前致谢!
您需要检查类型是否与之前的类型不同。您可以使用 $index - 1
<div ng-repeat="animal in animals">
<h1 ng-if="animal.type != animals[$index - 1].type">
{{ animal.type }}
</h1>
{{animal.name}}
</div>
尝试访问 ng-repeat
循环的前一个元素并将其类型与当前元素的类型进行比较。如果类型不同,则必须显示字幕。
有关如何获取前一个元素的信息,请参阅此question。