【问题标题】:Angular passing event data doesn't log correctly角度传递事件数据未正确记录
【发布时间】:2021-10-19 18:14:51
【问题描述】:

所以我有“添加到收藏夹”功能的组件收藏夹。

我在 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)时,此事件都会登录到控制台“Favorite changed”+ 0/1(布尔值)。 它记录:Favorite changed NaN。

问题出在哪里?

【问题讨论】:

    标签: javascript angular


    【解决方案1】:

    你写了console.log("Favorite changed", + eventArgs);

    有一个逗号,,因此您将两个参数传递给console.log,第二个参数是+ eventArgs,它试图将eventArgs 转换为一个数字。

    正如您声明的,eventArgs 显然不是数字(NaN 表示不是数字)因此转换(来自+ 符号)失败。

    您可能想要删除 +

    【讨论】:

      【解决方案2】:

      这里eventArgs 是一个对象,由于+ 将得到NaN,您需要写入eventArgs.newValue 这是布尔值并转换为1/0 请尝试以下代码

      console.log("Favorite changed ", +eventArgs.newValue)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-05
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多