如何在Angular2模板中获取数组的最后一个元素而不循环所有元素?

如何在Angular2模板中获取数组的最后一个元素而不循环所有元素?,angular,angular2-directives,Angular,Angular2 Directives,这个问题不是问如何访问像i、first、last这样的循环变量,而是问如何检索变量并将其设置为模板变量。 这不起作用 <div #lastElement="arr[arr.length-1]"></div> 所以我实际上需要在组件中创建一个局部变量,然后直接绑定它 我觉得过去使用ng-*指令可以做的很多事情都需要在组件中硬编码。。。有点降级tbh您不能为模板变量指定任意值。模板变量用于引用元素和指令,局部变量用于结构指令 您可以在模板循环中设置lastelemen

这个问题不是问如何访问像i、first、last这样的循环变量,而是问如何检索变量并将其设置为模板变量。


这不起作用

<div #lastElement="arr[arr.length-1]"></div>

所以我实际上需要在组件中创建一个局部变量,然后直接绑定它


我觉得过去使用ng-*指令可以做的很多事情都需要在组件中硬编码。。。有点降级tbh

您不能为模板变量指定任意值。模板变量用于引用元素和指令,局部变量用于结构指令

您可以在模板循环中设置
lastelement
变量。Angular将自动将循环中的最后一个元素绑定到最后一个指令

<div *ngFor="#item of items; #lastElement = last">
   // Items go here
</div>

//物品放在这里

您可以使用布尔关键字
last
,在本例中:

<div *ngFor="let item of items;let last = last;let first = first;let index = index">
first:{{first}}
index:{{index}}
last:{{last}}
</div>

这应该行得通,您收到的错误是什么?我怀疑您在数据准备好之前由于组件绑定而得到了一个未定义的错误。你可能需要用三元数来解决这个问题
#lastElement=“!!arr&&arr.length>0?arr[arr.length-1]:未定义”
请您详细说明一下为什么需要此功能。也许还有另一个解决方案。有一个社交媒体图标列表,但只有最后一个需要更多的指令。问题是在不循环所有内容的情况下完成。我下面的答案应该是正确的。@JoshuaSzuslik你也在循环
first:true index:0 last:false
first:false index:1 last:false
first:false index:2 last:false
first:false index:3 last:true