Задать вопрос

Как создать переменную в шаблоне?

<div class="row" *ngFor="let x of X">
  <div class="column" *ngFor="let y of Y">
    <z (disabled)="disabled(zOf(x, y))" (selected)="selected(zOf(x, y))"></z>
  </div>
</div>


В этом примере функция zOf(x, y) создаёт объект, который используется для получения параметров. Но функцию-конструктор приходится вызывать дважды. Как присвоить возвращаемый результат для повторного использования?
  • Вопрос задан
  • 688 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
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 код будет исполняться при срабатывании соответствующего подписчика. Так что я не понимаю зачем вам тут переменная
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Negwereth
@Negwereth
lvivcss.com.ua
А почему не передать только сам этот объект, а функции disabled и selected вызвать в коде самого компонента?
Ответ написан
@Cr2ed
ng-init
<z ng-init="z=zOf(x, y)" (disabled)="disabled(z)" (selected)="selected(z)"></z>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы