AngularJS - ng - 如果数组中有特定值

Joe*_*e82 3 angularjs angular-ng-if

我希望ngIf在范围内的数组中有特定值时触发.

所以我在我的范围内有这个:

var orders = [{
    "order_no": 1,
    "color": ["blue", "pink", "red"]
}, {
    "order_no": 2,
    "color": ["yellow", "blue", "white"]
}];
Run Code Online (Sandbox Code Playgroud)

我希望有一个ngIf显示一个元素,例如,如果其中一个颜色数组中存在黄色(假设我事先不知道数据范围,但事先知道结构).

我发现这样做的唯一方法是事先知道范围的结构,所以fx ng-if="orders[1].color[0] === 'yellow'"

谢谢!

Cos*_*bei 12

您可以在HTML模板中调用数组的indexOf方法color.这样,您不需要$scope使用其他方法污染它.

这是如何做: ng-if="order.color.indexOf('pink') !== -1"

注意:不要忘记AngularJS中的表达式是不同的.要记住的一个关键因素是他们宽容.

原谅:在JavaScript中,尝试评估未定义的属性会生成ReferenceError或TypeError.在Angular中,表达式求值是对undefined和null的宽容.

这意味着myCtrl.foo.bar.wa.la会评估undefined哪些不会触发ngIf.你可以在这里阅读更多相关信息.