Я знаю, что в angular2 я могу отключить кнопку с
[disable]
атрибутом, например:
<button [disabled]="!isValid" (click)="onConfirm()">Confirm</button>
но могу ли я сделать это с помощью [ngClass]
или [ngStyle]
? Вот так:
<button [ngStyle]="{disabled : !isValid}" (click)="onConfirm()">Confirm</button>
Спасибо.
html
angular
angular2-template
angular2-forms
Нир Шварц
источник
источник
Ответы:
Обновить
Мне любопытно. Почему вы не хотите использовать
[disabled]
привязку атрибутов, предоставляемую Angular 2? Это правильный способ справиться с этой ситуацией. Предлагаю переместитьisValid
чек компонентным методом.Проблема с тем, что вы пробовали, объяснена ниже
В основном вы можете использовать
ngClass
здесь. Но добавление класса не ограничивает запуск события. Для запуска события при действительном вводе вы должны изменитьclick
код события на указанный ниже. Так что онonConfirm
будет запущен только тогда, когда поле действительно.Демо здесь
источник
button[disabled]
событию на основе селектора, а отключенное событие ограничит запускclick
события на кнопке .. вngClass
классе вещь вам нужно обрабатывать его самостоятельно, как я показал на ответ выше ..[disabled]="!isValid"
isValid
флаг в пользовательском интерфейсеЯ бы порекомендовал следующее.
источник
Да, ты можешь
https://angular.io/docs/ts/latest/api/common/NgClass-directive.html
источник
Если у вас есть форма, то также возможно следующее:
Демо здесь: http://plnkr.co/edit/Xm2dCwqB9p6WygrquUGh?p=preview&open=app%2Fapp.component.ts
источник
Использование
ngClass
для отключения кнопки для недопустимой формы не является хорошей практикой в Angular2, когда он предоставляет встроенные функции для включения и отключения кнопки, если форма действительна и недействительна соответственно, без каких-либо дополнительных усилий / логики.[disabled]
будет делать все, например, если форма действительна, она будет включена, а если форма недействительна, она будет отключена автоматически.См. Пример:
источник
Может быть, код ниже может помочь:
источник
<button disabled="">
или<button disabled="false">
по - прежнему обрабатывается как кнопка инвалидов в большинстве браузеровЯ пробовал использовать disabled вместе с событием щелчка. Ниже приведен фрагмент, принятый ответ также работал отлично, я добавляю этот ответ, чтобы дать пример того, как его можно использовать с отключенными свойствами и свойствами щелчка.
источник
Если вы используете реактивные формы и хотите отключить какой-либо ввод, связанный с элементом управления формой, вы должны поместить эту
disabled
логику в свой код и вызватьyourFormControl.disable()
илиyourFormControl.enable()
источник
Я думаю это самый простой способ
источник
.ts код
источник