Как изменить переменную ng-template в Angular 5 - PullRequest
0 голосов
/ 30 мая 2018

Когда я пытаюсь изменить переменную ng-template при щелчке внутри шаблона, я получаю сообщение об ошибке (Uncaught Error: Невозможно назначить ссылку или переменную!)

<ng-template let-o="opened" [ngTemplateOutletContext]="{ opened: d === 0 }" [ngTemplateOutlet]="item" #item>
  <div class="columns table-header is-marginless">
    <button (click)="o = !o">+</button>
    <div [hidden]="!o">Toggle me on button click</div>
  </div>
</ng-template>

Так как получить доступ к локальнойпеременная 'o' для того, чтобы изменить это?

1 Ответ

0 голосов
/ 30 мая 2018

Когда Angular отображает шаблон, он каждый раз создает новый контекст и использует этот контекст для визуализации HTML.Это означает, что любые изменения, сделанные позже в этом контексте, отбрасываются при повторной визуализации шаблона.Таким образом, каждый раз при отображении шаблона значение o всегда равно d === 0.

. Сообщение об ошибке Cannot assign to a reference or variable просто не дает вам попытаться изменить эти временные значения.Поскольку любые изменения будут потеряны при следующем отображении шаблона.

Событие (click) должно заменять значение d.Чтобы при создании следующего контекста значение o представляло новое состояние.

...