对编程很陌生,我无法绕过这个问题。
*ngIf="!report.approved
和*jhiHasAnyAuthority="'ROLE_ADMIN'"
分开工作,所以我猜测OR语句就是问题所在。我尝试使用<ng-container>
按照一些答案中的建议,但我不能让它工作。有没有办法做这样的事情?
<button type="submit">View</button>
<div *ngIf="!report.approved" || *jhiHasAnyAuthority="'ROLE_ADMIN'">
<button type="submit">Edit</button>
<button type="submit">Delete</button>
</div>
管理员应该始终看到按钮,如果报告未获批准,用户应该只能看到按钮。
答案 0 :(得分:2)
一种解决方法是将两个指令分为两个不同的div用于AND,如果要实现OR,则复制代码,如下所示:
用于 AND
<div *jhiHasAnyAuthority="'ROLE_ADMIN'">
<div *ngIf="!report.approved" >
//your html code here
</div>
</div>
用于或
<div *jhiHasAnyAuthority="'ROLE_ADMIN'">
//your html code here
</div>
<div *ngIf="!report.approved">
//your html code here
</div>
仍然使用此OR版本,如果同时满足两个条件,您将获得重复的结果。
答案 1 :(得分:1)
我猜你在双引号中有一些问题,你需要在第二个语句中添加=
。无法访问!report.approved
之后的部分,因为您正在使用双引号关闭*ngIf
指令。
目前无法检查,但我想这可行:
<div *ngIf="!report.approved || jhiHasAnyAuthority=='ROLE_ADMIN'">
答案 2 :(得分:1)
您可以复制以下代码以获得所需的效果。
<button type="submit">View</button>
<div *ngIf="!report.approved">
<button type="submit">Edit</button>
<button type="submit">Delete</button>
</div>
<div *ngIf="report.approved">
<div *jhiHasAnyAuthority="'ROLE_ADMIN'">
<button type="submit">Edit</button>
<button type="submit">Delete</button>
</div>
</div>