I'm trying to figure how to pass value from one Angular component to another my-input.component
and my-button.component
:
I'm trying to receive from my-input.component.ts
and display @Input('name')
with button (click)="displayReceivedValue()"
from my-button.component.html
in my-button.component.ts
:
import { Component, Input, OnInit } from '@angular/core'; import { MyInput } from '../../interfaces/my-input'; @Component({ selector: 'app-my-button', templateUrl: './my-button.component.html', styleUrls: ['./my-button.component.scss'], }) export class MyButtonComponent implements OnInit { @Input('name') public input!: MyInput; constructor() {} ngOnInit(): void {} async displayReceivedValue() { console.log('Received value: ', this.input); } }
which is <app-my-button name=""></app-my-button>
component in Login page
login.component.html
from my-input.component.ts
with this.myValue
from [(ngModel)]="myValue"
in input
of my-input.component.html
, but I'm not sure, how to pass it to name=""
:
import { Component, EventEmitter, OnInit, Output } from '@angular/core'; @Component({ selector: 'app-my-input', templateUrl: './my-input.component.html', styleUrls: ['./my-input.component.scss'], }) export class MyInputComponent implements OnInit { public myValue: any; constructor() {} ngOnInit(): void {} }
Also I've tried use @Output()
with <app-my-button (inputValue)="acceptData($event)"></app-my-button>
component in Login page
from my-input.component.ts
:
import { Component, EventEmitter, OnInit, Output } from '@angular/core'; @Component({ selector: 'app-my-input', templateUrl: './my-input.component.html', styleUrls: ['./my-input.component.scss'], }) export class MyInputComponent implements OnInit { @Output() inputValue= new EventEmitter<string>(); public myValue: any; constructor() {} ngOnInit(): void { this.inputValue.emit(this.inputValue); } }
in my-button.component.ts
:
import { Component, Input, OnInit } from '@angular/core'; @Component({ selector: 'app-my-button', templateUrl: './my-button.component.html', styleUrls: ['./my-button.component.scss'], }) export class MyButtonComponent implements OnInit { constructor() {} ngOnInit(): void {} acceptData(data: any) { console.log(data); } }
I got nothing if I add (inputValue)="acceptData($event)
to my-button.component.html
, or if I add (inputValue)="acceptData($event)
to login.component.html
I got error:
https://stackoverflow.com/questions/66946980/pass-value-from-input-component-to-button-component-in-angular-application April 05, 2021 at 08:19AMTS2339: Property 'acceptData' does not exist on type 'LoginComponent'.
没有评论:
发表评论