angular2 и ngIf — проверить, больше или меньше, чем

#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>