Не уверен, что option
здесь, но вы можете передать объект item
и option_a
, чтобы точно знать, что было выбрано.Итак:
<button ion-button full (click)= "select(item, item.option_a)" >{{ item.option_a }}
</button>
даст вам доступ к элементу, который вызвал щелчок, и к опции в этом элементе, который вызвал щелчок.Или, если вы хотите знать, было ли это A,B,C or D
<button ion-button full (click)= "select(item, item.option_a, 'A')" >{{ item.option_a }}
</button>
Что касается связи между компонентами, Angular способ заключается в использовании services .
select(item, option, selection) {
this.whateverService.emitSelection(item, option);
}
Мы можем использовать субъект поведения, чтобы генерировать каждое изменение в выборе.Служба будет выглядеть так:
@Injectable({
providedIn: 'root',
})
export class WhateverService {
private selection = new BehaviorSubject(null);
get selectionObservable$(){
return this.selection.asObservable();
}
constructor() { }
public emitSelection(item, option) {
this.selection.next({ item, option });
}
}
Другой компонент будет выглядеть как
export class WhateverComponent {
selection$: Observable;
constructor(private whateverService: WhateverService) {
this.selection$ = this.whateverService.selectionObservable$;
}
}
, и в представлении асинхронный канал допускает подписку:
<div>{{ (selection$ | async).option }}