将字符串转换为Angular中的指令

时间:2018-02-02 13:21:43

标签: angular angular5

我想在Angular HTML中使用一个字符串来评估我的ngIf

ts:
stringToEval:string = "element.users.length > 0"
elements: Element[] = [
   {
     name: 'name1', 
     users: []
   },{
     name: 'name2',
     users: [
       user: 'user1',
       user: 'user2'
     ]
 }];
html:

 <ng-container *ngFor="let element of elements;">
     <div *ngIf="!stringToEval"> 
         element.users is empty
     </div>
     <div *ngIf="stringToEval"> 
         element.users has element
     </div>               
 </ng-container>

也许管道是我需要做的?但是可以在ngIf中调用管道吗?我试过了它就崩溃了。

2 个答案:

答案 0 :(得分:0)

你需要一个布尔值。让我用非常简单的代码解释你。

VAL:布尔;

if(element.users.length > 0) {
 val = true;
} else val = false;

并在HTML中,您可以检查它:

<div *ngIf="val">Hello</div>

如果val为真,它将呈现Hello,如果它为false,则它将不会显示它。

答案 1 :(得分:0)

您可以这样评估:

<div *ngIf="element.users.length">
    element.users is empty
</div>
<div *ngIf="!element.users.length">
    element.users has element
</div>

<强> Remember that javascript evaluates a 0 as false 即可。