示例: Parent
@Component({
selector: 'parent',
template: `<div> Test
<child [modal] = "parentModal"
(change) = "onChange($event)">
</child>
</div>`
})
export class ParentComponent {
parentModal;
ngOnInit() {
this.parentModal = "I am Parent";
}
onChange(event) {
console.log(event);
}
}
孩子
@Component({
selector: 'child',
template: `<div>
{{modal}}
<a (click)="emitClick()"></a>
</div>`
})
export class ChildComponent {
@Input modal;
@Output change;
@Output open;
emitClick() {
this.change.emit();
}
}
我的代码可能有错误的语法。如果你发现了一些,请改正。
我的问题是:
正如您所看到的,Parent没有将Open
参数传递给子对象。在点击A
标签时调用emitClick函数会导致错误吗?
发布于 2018-12-05 09:12:36
长话短说,不,你不需要。但是你的代码应该是:
父级:
@Component({
selector: 'parent',
template: `<div> Test
<child [modal] = "parentModal"
(change) = "onChange($event)">
</child>
</div>`
})
export class ParentComponent implements OnInit {
public parentModal = "I am Parent";
ngOnInit() {
}
onChange(event) {
console.log(event);
}
}
子级
@Component({
selector: 'child',
template: `<div>
{{modal}}
<a (click)="emitClick()"></a>
</div>`
})
export class ChildComponent {
@Input() modal: string = '';
@Output() change = new EventEmitter<string>();
@Output() open= new EventEmitter<void>();
emitClick() {
this.change.emit('change');
}
}
https://stackoverflow.com/questions/53623491
复制相似问题