Javascript AngularJS: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, }, {

我对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,
    }
我需要在最后一个具有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
。事实上,如果出现以下情况,我们必须显示按钮:

  • 当前项目是