angular里($event.target.value)在一个简单的HTML表单中,当我们监听某个输入框的值变化。父组件要调用这个变化的值
时间: 2024-09-18 16:10:33 浏览: 53
angular5 子组件监听父组件传入值的变化方法
在Angular中,当你在父组件处理一个子组件中的输入元素(如表单控件)时,可以使用`$event`对象来获取用户在输入框中更改的值。`$event`通常是在`(input)`或`(change)`这样的事件处理器中作为参数传入的,代表了触发事件的对象。
假设有一个简单的HTML表单,其中包含一个子组件的`<input>`元素,并且我们想在父组件中监听这个输入框的值变化:
```html
<!-- 子组件 -->
<app-child-input [(ngModel)]="childValue" (valueChange)="parentUpdate($event)"></app-child-input>
<!-- 父组件 -->
<template #childContent let-childValue="childValue">
<ng-container *ngTemplateOutlet="childTemplate; context: {$implicit: childValue}"></ng-container>
</template>
...
<button (click)="openChildModal()">Open Child Input</button>
// 子组件模板
<input type="text" [(ngModel)]="value" (input)="emitValueChanged()" />
// 父组件.ts
import { Component, TemplateRef } from '@angular/core';
@Component({
// ...
})
export class ParentComponent {
@ViewChild('childContent', { read: TemplateRef }) childContent: TemplateRef<any>;
openChildModal() {
// 显示子组件模态
this.childInputModal.show();
}
parentUpdate(newValue: any) {
console.log('Parent received new value:', newValue);
// 更新父组件的变量或者其他逻辑
}
}
// 子组件.ts
export class ChildInputComponent {
@Output() valueChange = new EventEmitter<string>();
emitValueChanged() {
this.valueChange.emit(this.value);
}
}
```
在这个例子中,每当子组件的输入框值发生变化,它会调用`emitValueChanged`方法,触发`valueChange`事件并传递新值给父组件。父组件的`parentUpdate`方法会在接收到这个值后打印出来并处理。
阅读全文