Это компонент
export class ButtonGroupComponent implements OnInit {
@Input() items: Array<Object>;
constructor(private el: ElementRef) {
}
ngOnInit(){
console.log('this.constructor.name ' + this.constructor.name);
console.log(this.items);
}
onParentClick(index) {
let items = this.items;
Observable.of(items).subscribe(items => {
this.el.nativeElement.dispatchEvent(new CustomEvent(items[index].eventName, {}));
console.log( items[index].eventName );
});
}
А это шаблон:
<custom-button *ngFor="let el of items ; let i = index"
type="{{el.type}}"
btnName="{{el.btnName}}"
btnIcon="{{el.btnIcon}}"
disabled="{{el.disabled}}"
(childClickEvent)="onParentClick($event)"
[index]="i"
[item]="item"
>
</custom-button>
'items' - это массив объектов, который поступает от хоста pt-button-group и описывает, какие кнопки будут на странице.
Чтобы узнать, какая кнопка группы была нажата, компонент отправляет индекс объекта, который соответствует нажатой кнопке, и описание имени события этой кнопки.
Когда я компилирую, я получаю двойную ошибку:
error TS2339: Property 'eventName' does not exist on
type 'Object'
но как это возможно? Предполагается, что наблюдаемые должны быть синхронизированы, верно? Я неправильно написал, что Observable? Как я могу получить значение eventName без ошибок?