Селективная кнопка по умолчанию выберите значение угловой материал 2

Я работаю над переключателем angular material 2, следуя этой документации: https://material.angular.io/components/component/radio.

Проблема, с которой я столкнулся, заключается в том, чтобы для переключателя было выбрано значение по умолчанию No. Если вы видите в плунжере: https://plnkr.co/edit/jdRxVLdSfFqR4XOdpyUN?p=preview вы обнаружите, что ни один из вариантов не выбран. Я бы хотел, чтобы значение по умолчанию было No при загрузке страницы.


person Aakash Thakur    schedule 09.05.2017    source источник


Ответы (9)


Многие плункеры больше не работают на меня. Здесь есть модифицированный stackblitz:

Blitz

Как уже упоминалось, мы можем установить ngModel и переменную:

[(ngModel)]="favoriteSeason"

и в файле 'ts':

  favoriteSeason: string = 'Winter';

Или мы можем установить отмеченный:

[checked]="season === 'Winter'" 

Еще одна небольшая проблема, которую я недавно обнаружил, заключается в том, что если вы по ошибке укажете неправильный mat-checkbox (повторяющиеся идентификаторы), то это не сработает - вы ничего не сможете проверить. Убедитесь, что ваши идентификаторы уникальны.

person PeterS    schedule 27.03.2018

Вы можете использовать checked, например:

[checked]="data.value ==='false'" 

обратите внимание, что мы проверяем, используя строку 'false' вместо false, поскольку ваше значение имеет строку со значением false.

Plunker

person AJT82    schedule 09.05.2017
comment
Спасибо за помощь!! - person Aakash Thakur; 09.05.2017

Вы можете добиться этого с помощью атрибута [checked]. См. Этот Plunker

person anoop    schedule 09.05.2017
comment
Спасибо за помощь!! - person Aakash Thakur; 09.05.2017

есть еще один вариант: вы можете использовать [(ngModel)] для инициализации md-radio-group с вашим компонентом.

plunker демо.

person Pengyy    schedule 09.05.2017
comment
Имейте в виду, что при использовании [(ngModel)] вы больше не можете использовать свойство [checked]. Например, если вы явно установите [checked] в false, но переменная компонента, привязанная к mat-radio-group, имеет значение, равное значению этого mat-radio-button, переключатель действительно останется отмеченным - person andreisrob; 21.12.2017

Мне нравится реактивный подход при работе с переключателями материалов. Ниже приведен пример того, как проверить истинность и ложь в вашей базе данных для определенной формыControlName.

Компонент в диалоговом окне

<mat-radio-group formControlName="trueClient">
                <mat-radio-button class="material-radio" value="true" [checked]="data.trueClient === 'true'">True Client</mat-radio-button>
                <mat-radio-button class="material-radio" value="false" [checked]="data.lostLead === 'false'">Lost Lead</mat-radio-button>
        </mat-radio-group>

Если это форма обновления, не забудьте установить значения в своем конструкторе форм. Пример ниже:

.ts-файл для компонента в диалоговом окне.

this.viewClient.setValue({
      trueClient: this.data.trueClient
    });

В этом случае я открываю данные в диалоговом окне. Итак, данные поступают из следующего: component.ts до открытия диалогового окна. Просто ссылка, чтобы вы знали, откуда я взял переменную данных сверху, чтобы установить значения.

Компонент, используемый для открытия диалогового окна. Ссылка на Dialog в документации по материалам для получения дополнительной информации о том, как настроить.

const dialogRef = this.dialog.open(ClientNotesComponent, {
        height: '600px',
        width: '800px',
        data: {trueClient: trueClient}
    });
 });
}
person Kevin Summersill    schedule 24.05.2018

HTML файл

<mat-radio-group aria-label="Select an option" [(ngModel)]="formValues['type']">
    <mat-radio-button value="individual">Individual</mat-radio-button>
    <mat-radio-button value="business">Business</mat-radio-button>
</mat-radio-group>

Ts файл

ngOnInit()
{
    this.formValues['type'] = "business";
}
person Praveen AK    schedule 04.04.2019

В моем случае проблема выбора была решена заменой атрибута name="howLong" на [ngModelOptions]="{standalone: true}".
Следует отметить, что выбор работал для A day or less than a day. Но это не сработало для More than a day

Нерабочая версия:

   <mat-radio-group
        [(ngModel)]="howLong"
        name="howLong"
        (change)="resetTime()">
        <mat-radio-button class="ignore" value="MoreThanADay">
            More than a day
        </mat-radio-button>
        <mat-radio-button value="ADayOrLessThanADay">A day or less than a day</mat-radio-button>
    </mat-radio-group>

Рабочая версия:

   <mat-radio-group
        [(ngModel)]="howLong"
        [ngModelOptions]="{standalone: true}"
        (change)="resetTime()">
        <mat-radio-button class="ignore" value="MoreThanADay">
            More than a day
        </mat-radio-button>
        <mat-radio-button value="ADayOrLessThanADay">A day or less than a day</mat-radio-button>
    </mat-radio-group>
person Md. Sabbir Ahamed    schedule 03.11.2019

если вы хотите передать строку или логическое значение вашей группе mat-radio-group с помощью [(ngModel)], вы можете установить значение по умолчанию для вашего [(ngModel)] в файле TS. вот так: HTML-файл

Ts файл

person sohrab taheri    schedule 17.05.2020
comment
Старайтесь избегать URL-адресов изображений с исходным кодом. Лучше добавить исходный код в виде блока кода прямо в вопрос / ответ. Это повысит читаемость и качество. Взгляните здесь и добро пожаловать в SO. - person Panagiotis Simakis; 17.05.2020

person    schedule
comment
Рекомендуется добавить некоторые описания к опубликованному вами ответу, - person Derviş Kayımbaşıoğlu; 27.12.2018
comment
Вопрос датирован 1,5 года назад, и в нескольких других ответах уже упоминалось использование [checked], и они не ограничиваются статическим значением, а устанавливают значение в зависимости от фактических данных пользователя. Этот ответ не добавляет ничего полезного, и уж тем более, когда у него нет описания. - person trincot; 27.12.2018