所以我有最喜欢的"添加到收藏夹";功能。
我在favorite.component.ts中有下一个代码(仅用于发射事件的行)
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
@Input() isFavorite = false;
this.change.emit({ newValue: this.isFavorite });
我在app.component.html中有下一个代码:
<favorite [isFavorite]="post.isFavorite" (change)="favButtonChanged($event)"></favorite>
app.component.ts中的下一个:
favButtonChanged(eventArgs: { newValue: boolean }) {
console.log("Favorite changed", + eventArgs);
}
这个想法是,每当按钮改变(切换颜色和html)时,这个事件就会登录控制台";收藏夹已更改"+0/1(布尔值)。它记录:最喜欢的更改NaN。
问题出在哪里?
您编写了console.log("Favorite changed", + eventArgs);
有一个逗号,
,所以您将两个参数传递给console.log
,第二个参数是+ eventArgs
,它试图将eventArgs
转换为数字。
正如您所声明的,eventArgs
显然不是一个数字(NaN
表示不是数字),因此转换(从+
符号)失败。
您可能需要删除该+
。
这里eventArgs
是一个由于+
而得到NaN
的对象,您需要写eventArgs.newValue
,它是布尔值&转换为1/0请尝试以下代码
console.log("Favorite changed ", +eventArgs.newValue)