css - Angular 表单验证和 Bootstrap 样式

标签 css forms angular twitter-bootstrap-4

我是 Angular 的新手,我正在尝试使用 Angular 和 Bootstrap 4 创建注册表单。

我想要的结果是使用 Bootstrap 的样式和 Angular 的验证。 更准确地说,在验证表单时,Angular 在两个不同的地方应用样式(ng-valid、ng-invalid 等):输入元素和表单元素。

两个问题:

1) 由于 Bootstrap 使用“has-danger”和“has-success”而不是“ng-[in]valid”,是否可以配置 angular 以使用这些样式而不是默认样式。目前,我正在考虑通过添加 Angular 样式(使用@extend has-danger/success)来扩展 Bootstrap

2) Angular 将样式应用于输入和表单元素,而 Bootstrap 期望它应用于表单组元素。是否可以让 Angular 将样式放在那里而不是输入元素(或两者?)

我正在使用响应式(Reactive)表单,我想避免类似(未测试)的事情:

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

是否有一种简单的方法(不是太冗长)来实现这一点?

最佳答案

如果您使用的是 SASS,则无需重写所有 css 即可执行以下操作。

.ng-touched.ng-invalid {
  @extend .is-invalid;
}

注意:您需要导入 bootstrap 作为 SASS 构建的一部分,而不是直接引用它。

如果你不使用 SASS,安装它非常好,请看这里 Angular CLI SASS options

关于css - Angular 表单验证和 Bootstrap 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44119219/

相关文章:

jquery - 在不同屏幕上调整背景图像高度

html - 简单的 CSS 微调器作为 DIV 而不是 SPAN(或内联 DIV)

html - 处理 HTML 表单的最有效方法

jquery - 如何让我的隐藏段落在显示时静止不动

javascript - 获取下拉信息的按钮

JavaScript 仅在刷新后才起作用

javascript - 为什么当我在文本框中按回车键时我的表单正在提交?

javascript - {{ }} 内的字符串作为插值代码

angular - 错误: Project 'start' could not be found in workspace

rest - Angular2 - Http 服务 - 如何确保我始终拥有实时数据