用ngTemplate用Angular显示元素html

时间:2018-11-15 12:00:43

标签: angular

我从服务器上得到一个JSON对象。我有多个变量。

我要检查1个变量,如果我将此变量设为null,则我不会显示“ a>

<div *ngIf="{{param.exist}} !== null #myData" ></div>
<ng-template #myData>
    <a href="{{param.link}}">
        <clr-icon shape="info-standard"></clr-icon>Reporting
    </a>
</ng-template>

问题是这无法运行。

编辑:

我已显示标签a href ...>,但仅当我从json中获取数据时:

Json示例:

{
 "exist":null,
 "link": null
},
{
 "exist":"units",
 "link": "http:\\www.myUnits..."
}

我尝试使用ng-Template一无所获,我也尝试使用:

<ng-template *ngIf="enableValidation(param.exist)">
    <a href="{{param.link}}">
        <clr-icon shape="info-standard"></clr-icon> Acceder
    </a>
</ng-template>

enableValidation(exist: any) {
    if (exist === null) {
        return true;
    }
}

但是从不显示任何内容。谢谢。

2 个答案:

答案 0 :(得分:0)

您可以按照以下方式进行操作,因为您看到使用了错误的语法:https://angular.io/api/common/NgIf#showing-an-alternative-template-using-else

<div  *ngIf="param && param.exist;else myData;">
   //when condition true display 
</div>

<ng-template #myData>
   <a href="{{param.link}}">
      <clr-icon shape="info-standard"></clr-icon>   Reporting
   </a>
</ng-template>

答案 1 :(得分:0)

尝试这种方法

<div *ngIf="checkNull()" >
                                <a href="{{param.link}}">
                                    <clr-icon shape="info-standard"></clr-icon>   Reporting
                                </a>
   </div>

并在您的 .ts 文件中

list = [{
 "exist":null,
 "link": null
},
{
 "exist":"units",
 "link": "http:\\www.myUnits..."
}];

checkNull() {
    return this.list.every(obj => !obj.exist);
  }

仅当每个对象中的exist不为null或未定义或不为空时,才会显示锚标记。