#angular #angular-directive #angular-template
#angular #angular-директива #angular-шаблон
Вопрос:
Как мне заставить это работать? Если значение равно 9 или меньше, отобразите «Месяц», иначе отобразите «Месяцы». Вот мой код:
<select id="analysis_horizon" class="custom-select form-control" [(ngModel)]="basic_setup.analysis_horizon" formControlName="analysis_horizon" describedby="basic-addon_analysis_horizon">
<option disabled>Select Analysis Horizon</option>
<option *ngIf="'i<=9'" *ngFor="let i of analysis_horizon_array">{{i}} Month</option>
<option *ngIf="'i>9'" *ngFor="let i of analysis_horizon_array">{{i}} Months</option>
</select>
Это ошибка, которую я получаю:
Не может иметь несколько привязок шаблона к одному элементу. Используйте только один атрибут с именем ‘template’ или с префиксом * («isabled> Выбрать горизонт анализа ]*ngFor=»пусть i из analysis_horizon_array»>{{i}} Месяц {{i}} Месяц 9′» [ОШИБКА ->]*ngFor=»пусть i из analysis_horizon_array»>{{i}} Месяцы ; Задача: Обещание.затем; Значение: Ошибка: ошибки синтаксического анализа шаблона: (…) Ошибка: ошибки синтаксического анализа шаблона: Не может иметь несколько привязок шаблона к одному элементу. Используйте только один атрибут с именем ‘template’ или с префиксом * («isabled> Выбрать горизонт анализа ]*ngFor=»пусть i из analysis_horizon_array»>{{i}} Месяц {{i}} Месяц 9′» [ОШИБКА ->]*ngFor=»пусть i из analysis_horizon_array»>{{i}} Месяцы
Ответ №1:
Вы не можете использовать несколько привязок шаблона к одному элементу, в данном случае *ngIf
и *ngFor
. Вы можете достичь желаемого с помощью интерполяции и тернарного оператора, вам не нужно использовать *ngIf
директиву:
<select id="analysis_horizon" class="custom-select form-control" [(ngModel)]="basic_setup.analysis_horizon" formControlName="analysis_horizon" describedby="basic-addon_analysis_horizon">
<option disabled>Select Analysis Horizon</option>
<option *ngFor="let i of analysis_horizon_array">
{{i}} {{ i <= 9 ? "Month" : "Months" }}
</option>
</select>