在一个元素上不能有多个模板绑定。或声明

时间:2017-03-10 11:09:58

标签: angular jhipster

对编程很陌生,我无法绕过这个问题。 *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>

管理员应该始终看到按钮,如果报告未获批准,用户应该只能看到按钮。

3 个答案:

答案 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>