Angular 理解*ngIf表达式

Angular 理解*ngIf表达式,angular,Angular,背景 在我的模板文件中,我循环使用http响应中的一些数据 <div *ngFor="let method of paymentMethods"> 现在,在这个循环中,我想根据method?.payment\u profile\u id的值显示两个元素中的一个 我试图在一个*ngIf *ngIf="defaultPayment = method?.payment_profile_id" 或者 但是当我尝试这样做时,我得到了一个解析器错误 分析器错误:绑定不能在中的第18列包含赋值

背景

在我的模板文件中,我循环使用http响应中的一些数据

<div *ngFor="let method of paymentMethods">
现在,在这个循环中,我想根据
method?.payment\u profile\u id
的值显示两个元素中的一个

我试图在一个
*ngIf

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

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

分析器错误:绑定不能在中的第18列包含赋值 [defaultPayment=方法?.payment\u profile\u id]

问题


编写此表达式的正确方法是什么?

您正在使用
=
执行赋值,但如果您想进行比较,它应该是
=
==

,因为从您得到的错误中可以清楚看出

绑定不能在[defaultPayment=method?.payment\u profile\u id]的第18列包含赋值

*ngIf
(绑定)仅用于检查模板,并将
布尔值(真/假)
返回到模板,您不能在*ngIf之间分配任何值。因此,要检查是否相等,您必须使用
=
==
而不是
=
,因此正确的语法如上述答案所述

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

使用双等于,而不是单等于,
=
,单个
=
是赋值运算符,而不是相等运算符。的可能重复项
*ngIf="defaultPayment != method?.payment_profile_id"
*ngIf="defaultPayment == method?.payment_profile_id"