如何组合多个* ngif?

时间:2018-01-15 21:23:40

标签: angular angular-ng-if

你好,我只想要一个ng,如果有三个输出要在表格中打印。

现在我有这样的语法:

<td><div *ngIf="todo.diffDays >90">ninety</div> </td>

我会在列中显示此输出

if diffDays >90 => ninety
if diffDays >180 => hundredeighty
and if diffdays >300 =>theehundred

如何组合它们?

谢谢!

4 个答案:

答案 0 :(得分:3)

如果您只想显示所有内容*ngIf,则可能甚至不需要> 90。你可以这样做:

<div> 
   {{ 
      diffdays > 300 ? "threehundred" : 
      diffDays > 180 ? "hundredeighty" :
      diffDays > 90 ? "ninety" : "Less than 90" 
   }}
</div>

这基本上是:

if > 300 display "threehundred", otherwise continue...
if > 180 display "hundredeighty, otherwise continue...
if > 90 display "ninety"...
if none satisfied display "Less than 90"

答案 1 :(得分:0)

您可以多次使用ngIf

<div *ngIf="todo.diffDays > 90">ninety</div>
<div *ngIf="todo.diffDays > 180">hundredeighty</div>
<div *ngIf="todo.diffDays > 300">threehundred</div>

答案 2 :(得分:0)

首先,您在组件类中声明了一个days变量。

export class AppComponent {

 public days: number;

 constructor() {

    this.days = 90; // Assign value
   }
}

调用天数,如下面的div标签所示。

<td>

<div *ngIf="todo.diffDays > days">{{days}}</div> 

</td>

答案 3 :(得分:0)

我会把这个逻辑放在你的模型中。有很多不同的方法来实现它,这取决于你需要什么

打字稿:

foo(val: number): string {
    if (val > 90) {
        return "ninety";
    }
    if (val > 180) {
        return "hundredeighty";
    }
    return "";
}

HTML:

<div>{{foo(todo.diffDays)}}</div>