【发布时间】:2017-10-22 11:40:25
【问题描述】:
我是 Angular 的新手,我正在尝试使用 Angular 和 Bootstrap 4 创建一个注册表单。
我想要的结果是使用 Bootstrap 的样式和 Angular 的验证。 更准确地说,在验证表单时,Angular 在两个不同的地方应用样式(ng-valid、ng-invalid 等):输入元素和表单元素。
两个问题:
1) 由于 Bootstrap 使用 'has-danger' 和 'has-success' 而不是 'ng-[in]valid',是否可以将 angular 配置为使用这些样式而不是默认样式。目前,我正在考虑通过添加角度样式来扩展引导程序(使用@extend has-danger/success)
2) Angular 将样式应用于 input 和 form 元素,而 bootstrap 期望它应用于 form-group 元素。是否可以将样式放在那里而不是输入元素(或两者兼而有之?)
我正在使用响应式表单,我想避免类似(未测试)之类的事情:
<form>
<div class="form-group" [class.has-error]="!fg.get('username').valid" [class.has-success]="fg.get('username').valid">
<label>Username</label>
<input formControlName="username" type="text"/>
</div>
</form>
有没有一种简单的方法(不太冗长)来实现这一点?
【问题讨论】:
-
您可以使用
[ngClass]="getKlass('myControlName')"并在您的组件中创建一个方法...类似于getKlass(controlName: string)并从中执行您的逻辑返回类,所以您可以在您的所有inputs中重新利用它。 -
是的,但是当表单更改值时会出现问题,对吗?或者该函数应该返回一个可观察对象?
-
不..没问题..每次更改都会调用您的函数。
标签: css forms angular twitter-bootstrap-4