Angular 4
Вот так может сработать, только нужно чтобы эта функция всегда true в булевом эквиваленте возвращала
<z *ngIf="zOf(x, y) as z" (disabled)="disabled(z)" (selected)="selected(z)"></z>
иначе такой вариант
<z *ngIf="{ of: zOf(x, y) } as z" (disabled)="disabled(z.of)" (selected)="selected(z.of)"></z>
Правда я советую не заниматься такой фигней в шаблоне, а заранее готовить данные.
И я очень уверен что в
@Output
код будет исполняться при срабатывании соответствующего подписчика. Так что я не понимаю зачем вам тут переменная