javascript - 根据子状态 Angular 更改父状态/类别

标签 javascript angular

如果所有 child 的状态均为“失败”,我想更改父级的类别,我正在使用 Angular 5。

我的 JSON:

[{"parent":"PARENT 1", "child":[{ "name":"Child 1", "status":"fail" }, { "name":"Child 1", "status":"fail" },{ "name":"Child 1", "status":"fail" }, { "name":"Child 1", "status":"fail" }], "someVal":"SOME VALUE" }, { "parent":"PARENT 2", "child":[{ "name":"Child 1", "status":"pass" }, { "name":"Child 1", "status":"pass" },{ "name":"Child 1", "status":"fail" }, { "name":"Child 1", "status":"fail" }], "someVal":"SOME VALUE" }, { "parent":"PARENT 3", "child":[{ "name":"Child 1", "status":"pass" }, { "name":"Child 1", "status":"pass" },{ "name":"Child 1", "status":"pass" }, { "name":"Child 1", "status":"pass" }], "someVal":"SOME VALUE" }]

我的 HTML:

<ul>
<li *ngFor="let anyvar of mainJSONOBJ" [ngClass]="FAIL/PASS"><a href="">{{anyvar.parent}}</a> 
    <ul *ngFor="let anyvar1 of anyvar.child" >
        <li *ngIf="anyvar1.child"><a href="#">{{anyvar.child.name}}</a></li>
    </ul>
</li>

我想做的是,如果所有子级的“状态”为“失败”,则将“ngClass”更改为“FAIL”,否则父级 LI 中的“ngClass”为“PASS”。

有没有办法可以用 Angular 5 做到这一点。谢谢。

最佳答案

[ngClass]="isFailed(anyvar) ? 'fail' : 'pass'"
isFailed(value: { child: [{ status: string }] }): boolean {
    return value.child.every(c => c.status === 'fail');
}

https://stackblitz.com/edit/angular-lkuthv

关于javascript - 根据子状态 Angular 更改父状态/类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52279392/

相关文章:

Angular Material 多对象拖放与调整大小问题

javascript - 当 xhttp 对象从 XML 获取数据时,如何显示进度计数器?

javascript - ajax数据过滤不起作用

angular - 如何使用 ng2-bootstrap DatePicker 的 customClass 属性?

angularjs - 从 ng-content 引用组件变量

angular - 删除 Angular Material 文本框边框,不影响其他组件

javascript - _this.host.getOutputName 中的 Angular 5 错误不是函数

javascript - 调整大小时 Canvas 引用丢失

javascript - phonegap 中的 html 文件 ://android_asset/www/index. 处未定义函数

javascript - 如何知道何时加载了 processingjs 草图?