【发布时间】:2017-09-09 19:54:13
【问题描述】:
我有一个通过事件发射器发射数据的子组件。发射数据与父级中的 ngModel 绑定。并且其中的发射方法是从父组件调用的。 我创建了子组件,因为我有两个相同的表单。所以我创建了一个表单组件并使用了两次并与他们的数据绑定。
//Child Component Code
import {Component, EventEmitter, Input, Output} from 'angular2/core'
@Component({
selector: 'child-component',
template: `
<input [ngModel]="formObj.title" >
`
})
export class ChildComponent {
@Input() formObject: Object;
@Output() formObjectChange= new EventEmitter();
emitChangeforParent() {
this.formObjectChange.emit(newValue);
}
}
//Parent Component
@Component({
selector: 'parent-component',
template: `
<child-component[(formObject)]="doseObject1" #firstForm></child-component>
<child-component[(formObject)]="doseObject2" #secondForm></child-component>
<button (click)="save()">Save</button>
`
})
export class ParentComponent {
doseObject1 ={title:''};
doseObject2 ={title:''};
save(){
this.firstForm.emitChangeforParent();
this.secondForm.emitChangeforParent();
console.log(this.doseObject1); //Updated data by child is available.But this works when i used single tag.
但是当我使用多个子标签时它不起作用 } }
问题是,每当我使用单一表单标签时,它都可以正常工作。孩子所做的更新反映在父母身上。 但是当我两次使用相同的标签标签时,调用它的子类 emitChangeForParent() 方法不起作用。
【问题讨论】:
标签: javascript angular typescript