簡體   English   中英

EventEmitter在Angular 5中不起作用

[英]EventEmitter is not working in Angular 5

我有孩子控制器:

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

@Component({
    selector: 'select-test',
    templateUrl: 'select-test.component.html',
    styleUrls: ['select-test.component.css']
})
export class SelectTestComponent {
  @Input() model: any;
  @Output() public changeModel: EventEmitter<any> = new EventEmitter<any>();
}

HTML:

<input [(ngModel)]="model" (ngModelChange)="this.changeModel.emit(this.model)" />

父html:

<p>{{testData}}</p>
<select-test [(model)] = "testData"></select-test>

為什么子組件不更改父組件變量?

您的代碼應如下所示:

Component.ts:

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

@Component({
   selector: 'select-test',
   templateUrl: 'select-test.component.html',
   styleUrls: ['select-test.component.css']
})
export class SelectTestComponent {
   @Input() model: any;
   @Output() public changeModel: EventEmitter<any> = new EventEmitter();
}

Component.html:

<input [(ngModel)]="model" (ngModelChange)="changeModel.emit(model)" />

Parent.html:

<p>{{testData}}</p>
<select-test [(model)]="testData"></select-test> //TWO-WAY DATA BINDING
<select-test [model]="testData"></select-test> //OR ONE-WAY DATA BINDING

我找到解決辦法。 需要將changeModel名稱更改為modelChange。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM