Javascript AngularJS:ngIf在具有不同属性的对象数组中
我对ngIf指令有一些问题。我尝试了很多方法来解决它,但不幸的是失败了 我有一个具有不同属性的对象数组。大概是这样的:Javascript AngularJS:ngIf在具有不同属性的对象数组中,javascript,angularjs,angular-ng-if,Javascript,Angularjs,Angular Ng If,我对ngIf指令有一些问题。我尝试了很多方法来解决它,但不幸的是失败了 我有一个具有不同属性的对象数组。大概是这样的: object = [ { name: "1", isNumber: true, }, { name: "2", isNumber: true, }, { name: "3", isNumber: true, }, {
object = [
{
name: "1",
isNumber: true,
},
{
name: "2",
isNumber: true,
},
{
name: "3",
isNumber: true,
},
{
name: "4",
isNumber: true,
},
{
name: "5",
isNumber: true,
},
{
name: "#",
isNumber: false,
},
{
name: "*",
isNumber: false,
}
我需要在最后一个具有isNumber属性真值的对象上使用ngIf。我不知道我的数组中有多少isNumber为true的对象。它可以是7或82。没人知道。另外,isNumber为false的对象也不会总是在我的数组中。有时数组将只有isNumber为true的对象,而没有isNumber为false的对象
如何使用ngIf实现这一点
提前谢谢
更新:
我有这样的想法:
object = [
{
name: "1",
isNumber: true,
},
{
name: "2",
isNumber: true,
},
{
name: "3",
isNumber: true,
},
{
name: "4",
isNumber: true,
},
{
name: "5",
isNumber: true,
},
{
name: "#",
isNumber: false,
},
{
name: "*",
isNumber: false,
}
1、2、3、4、5、6、7、*、#
我不想让最后一个元素上的“Down”按钮具有isNumber属性的真值(本例中为7)。因为如果用户将其向下移动,我将有:
1、2、3、4、5、6、*、7、#
这将是错误的逻辑
所以,我需要使用ngIf,这样我就可以禁用该元素上的这个按钮。但有时我可以有这样的SMT(没有额外的符号):
一,二,三,四,五
在这种情况下,我也不需要最后一个元素上的“向下”按钮。因为无法向下移动最后一个元素。如果您试图查找它是否是最后一个元素,并且如果
isNumber
设置为true,则可以使用以下方法:
$last
是通过ngRepeat
定义的特殊变量,位于。由于ngIf
接受布尔语句,因此可以同时使用逻辑&
和|
运算符
编辑:如果您没有使用ngRepeat
对其进行迭代,并且您只想选择最后一个元素,您可以执行类似操作来选择最后一个元素,然后使用ngIf
在isNumber
设置为true时显示该元素:
编辑2:您能否“窥视”下一个元素,看看下一个isNumber
是否设置为false?像这样:
<span ng-repeat="...">
<span ng-if="!list[$index + 1].isNumber"></span>
</span>
与$last
类似,我使用一个名为$index
的特殊变量转到ngRepeat
中的下一个元素。
(不确定Angular是否会自动检查越界错误,或者是否会引发错误)如果您试图查找它是否是最后一个元素,并且如果
isNumber
设置为true,则可以使用以下方法:
$last
是通过ngRepeat
定义的特殊变量,位于。由于ngIf
接受布尔语句,因此可以同时使用逻辑&
和|
运算符
编辑:如果您没有使用ngRepeat
对其进行迭代,并且您只想选择最后一个元素,您可以执行类似操作来选择最后一个元素,然后使用ngIf
在isNumber
设置为true时显示该元素:
编辑2:您能否“窥视”下一个元素,看看下一个isNumber
是否设置为false?像这样:
<span ng-repeat="...">
<span ng-if="!list[$index + 1].isNumber"></span>
</span>
与$last
类似,我使用一个名为$index
的特殊变量转到ngRepeat
中的下一个元素。
(不确定Angular是否会自动检查越界错误,或者是否会引发错误)如果您试图查找它是否是最后一个元素,并且如果
isNumber
设置为true,则可以使用以下方法:
$last
是通过ngRepeat
定义的特殊变量,位于。由于ngIf
接受布尔语句,因此可以同时使用逻辑&
和|
运算符
编辑:如果您没有使用ngRepeat
对其进行迭代,并且您只想选择最后一个元素,您可以执行类似操作来选择最后一个元素,然后使用ngIf
在isNumber
设置为true时显示该元素:
编辑2:您能否“窥视”下一个元素,看看下一个isNumber
是否设置为false?像这样:
<span ng-repeat="...">
<span ng-if="!list[$index + 1].isNumber"></span>
</span>
与$last
类似,我使用一个名为$index
的特殊变量转到ngRepeat
中的下一个元素。
(不确定Angular是否会自动检查越界错误,或者是否会引发错误)如果您试图查找它是否是最后一个元素,并且如果
isNumber
设置为true,则可以使用以下方法:
$last
是通过ngRepeat
定义的特殊变量,位于。由于ngIf
接受布尔语句,因此可以同时使用逻辑&
和|
运算符
编辑:如果您没有使用ngRepeat
对其进行迭代,并且您只想选择最后一个元素,您可以执行类似操作来选择最后一个元素,然后使用ngIf
在isNumber
设置为true时显示该元素:
编辑2:您能否“窥视”下一个元素,看看下一个isNumber
是否设置为false?像这样:
<span ng-repeat="...">
<span ng-if="!list[$index + 1].isNumber"></span>
</span>
与$last
类似,我使用一个名为$index
的特殊变量转到ngRepeat
中的下一个元素。
(不确定Angular是否会自动检查越界错误,或者是否会抛出错误)您最初的问题有点让人困惑,但由于编辑,我想我理解您的需要。通过将
$index
与$last
结合使用,您可以用一种简单的方式实现您想要做的事情:
<div ng-repeat="item in items">
{{item.name}}
<button ng-if="!$last && items[$index + 1].isNumber">Down</button>
</div>
{{item.name}
向下
解释
显示向下按钮的条件是$最后一项(&&items[$index+1]。isNumber
。事实上,如果出现以下情况,我们必须显示按钮:
- 当前项目是