Вы должны взглянуть на template driven forms
. Есть ключевые концепции, которые нужно освоить, когда вы занимаетесь разработкой Angular 2, и это одна из них. Это займет некоторое время, но оно того стоит: https://angular.io/docs/ts/latest/guide/forms.html
Итак, исходя из этого, если вы должны были создать элемент формы, который инкапсулирует все поля, и добавить атрибут required
к элементам, которые необходимо заполнить (например, userName), тогда кнопка будет отключена, если какое-либо из обязательных полей не заполнено.
Пример ввода с атрибутом required
:
<input type="text" class="form-control" id="userName"
required
[(ngModel)]="yourModel.yourProperty" name="userName"
#userName ="ngModel">
Пример кнопки внутри формы:
<button type="submit" class="btn btn-success">Submit</button>
В качестве альтернативы, если вы не хотите использовать формы и сейчас торопитесь, вы можете привязаться к атрибуту кнопки disabled
и выполнить метод, который возвращает логическое значение после проверки наличия всех обязательных полей.
<button [disabled]="!isMissingRequiredFields()">Continue</button>
И вы должны использовать привязки ngModel
для всех обязательных полей ввода, которые вы будете проверять методом isMissingRequiredFields()
, чтобы вы не делали ничего странного, например, обращались к элементам DOM из файла ts вашего компонента и получали их innerText и т. д.
person
muzurB
schedule
04.02.2017