Home > Back-end >  Angular passing event data doesn't log correctly
Angular passing event data doesn't log correctly

Time:10-20

So I have the component favorite for the "add to favorites" functionality.

I have the next code in favorite.component.ts (only lines for emitting event)

 import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';

 @Input() isFavorite = false;

 this.change.emit({ newValue: this.isFavorite });

I have the next code in app.component.html:

<favorite [isFavorite]="post.isFavorite" (change)="favButtonChanged($event)"></favorite>

And the next one in app.component.ts:

favButtonChanged(eventArgs: { newValue: boolean }) {
    console.log("Favorite changed",   eventArgs);
  }

The idea is that everytime the button changes (toggles color and html), this event to log in the console "Favorite changed" 0/1 (a boolean value). It logs: Favorite changed NaN.

Where is the problem?

CodePudding user response:

You wrote console.log("Favorite changed", eventArgs);

There's a comma , so you're passing two parameters to console.log and the second parameter is eventArgs which tries to convert eventArgs into a number.

As you declared, eventArgs is clearly not a number (NaN means Not a Number) so the conversion (from the sign) fails.

You might want to remove that .

CodePudding user response:

here eventArgs is an object which will get NaN due to you need write eventArgs.newValue which is boolean value & get converted into 1/0 Please try the below code

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

  • Related