【发布时间】:2021-06-30 23:00:06
【问题描述】:
我试图弄清楚如何将值从一个 Angular 组件传递到另一个 my-input.component 和 my-button.component:
我正在尝试从my-input.component.ts 接收并在my-button.component.ts 中使用来自my-button.component.html 的按钮(click)="displayReceivedValue()" 显示@Input('name'):
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);
}
}
这是Login page 中的<app-my-button name=""></app-my-button> 组件my-input.component.ts 中的this.myValue 和this.myValue 中的input 中的my-input.component.html,但我不确定如何将它传递给@ 987654337@:
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 {}
}
我还尝试在来自my-input.component.ts 的Login page 中使用@Output() 和<app-my-button (inputValue)="acceptData($event)"></app-my-button> 组件:
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);
}
}
在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);
}
}
如果我将(inputValue)="acceptData($event) 添加到my-button.component.html,或者如果我将(inputValue)="acceptData($event) 添加到login.component.html 我得到错误:
TS2339:类型上不存在属性“acceptData” '登录组件'。
【问题讨论】:
标签: angular typescript angular-cli angular-components