Как я могу использовать «как» для переназначения templateRefVar? - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь переназначить templateRefVar, доступный в угловом шаблоне. Я могу использовать ключевое слово «as», чтобы присвоить ему элемент, в котором он находится, как видно из приведенного ниже примера:

<input value="hello" #templateRefVar>

<!-- This works! -->
<div *ngIf="templateRefVar.value as value">
  I can output {{ value }}
</div>

Однако мне трудно заставить его работать с помощью оператора &&, если я расширяю * ngIf, поскольку он выдаст ошибку:

<!-- I can't get it to work using && -->
<div *ngIf="(templateRefVar.value as value) === 'hello' && templateRefVar.value">
  I cannot output {{ value }} and get an error.
</div>

На самом деле я ищу способ переназначения значения без необходимости использования директивы * ngIf. Я надеюсь, что есть стандартный API, о котором я не знаю, который может позволить мне переназначать переменные шаблона на лету, как показано в примере ниже (с желаемым мышлением ..)

<!-- Wish this worked : ( -->
<div *ngIf="templateRefVar.value === 'hello'" #reassignment="templateRefVar.value as value">
 Hoping I can output {{ value }}
</div>

Обновление к комментариям:

Для удобства, если мне нужно выполнить проверку, как в формах:

<!-- check if password.errors is not null before attempting to show validation messages regarding password.errors -->
<ng-container *ngIf="!verifyPassword.pristine && password.errors as errors"
   <!-- Using errors as shorter syntax rather than password.errors on different validation checks below -->
   <div>
     {{ errors.minlength }}
   </div>
   <div>
     {{ errors.nextError }}
   </div>
   <div>
     {{ errors.someOtherValidationMessage }}
   </div>
</ng-container>

Именно поэтому я надеюсь, что в Angular есть API, который поддерживает переназначение templateRefVar в случае, если у меня более длинный * ngIf, более сложный, чем описанный выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...