Angular 2 - Bindings不能包含赋值

时间:2017-03-30 12:29:50

标签: javascript angular typescript

如果item的属性与数组中对象的属性具有相同的值,我需要为<tr>提供一个类。

以下是我目前拥有的代码

<tr *ngFor="let item of closingDayGroupsList" [class.inactive]="definitionDetails.Groups.filter(i => i.AbsenceReservationGroupID === item.ID).length > 0">

但是现在我收到错误

Bindings cannot contain assignments

我不确定我所做的是不好的做法,还是我只是在犯语法错误。

这是我知道实现我想要的唯一方式,但它不起作用

2 个答案:

答案 0 :(得分:26)

expressions

中使用angular bindings是一种不好的做法

class 表达式移动到控制器中。

export class AppComponent {
    title = 'Groups';

    getClass(item): void {

      // add filter logic here
      return this.definitionDetails.Groups.filter(i => i.AbsenceReservationGroupID === item.ID).length > 0

    }
}

tr就像是,

<tr *ngFor="let item of closingDayGroupsList" [class.inactive]="getClass(item)">

答案 1 :(得分:1)

有一个小问题:- 让我们举一个例子,我想停止显示等于0000.00.00的日期,

因此,通过采用内联表达式绑定,我可以找到正确的

{

 {{(appointment_date === "0000.00.00") ? ' ' : appointment_date}}