理解* ngIf表达式

时间:2017-03-14 18:26:04

标签: angular

背景

在我的模板文件中,我正在循环访问来自http响应的一些数据。

<div *ngFor="let method of paymentMethods">

在该循环中我正在输出

method?.payment_profile_id

现在在该循环内部,我想根据method?.payment_profile_id的值显示两个元素之一。

我试图在*ngIf

内表达这一点
*ngIf="defaultPayment = method?.payment_profile_id"

或者,

*ngIf="defaultPayment != method?.payment_profile_id"

但是当试图这样做时,我得到一个解析器错误,

  

分析程序错误:绑定不能包含第18列的分配   [defaultPayment = method?.payment_profile_id]

问题

写这个表达式的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

您正在使用=进行作业,但如果您想进行比较,则应该是=====

答案 1 :(得分:0)

从错误中可以清楚地看出

  

绑定不能包含[defaultPayment = method?.payment_profile_id]中第18列的分配

*ngIf(绑定)仅用于检查并返回Boolean(true/false)到模板,您无法在* ngIf之间分配任何值。所以要检查相等性,您必须使用=====而不是=,所以正确的语法如上面的答案中所述。

*ngIf="defaultPayment == method?.payment_profile_id"