- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在阅读 Ari Lerner 的关于 Angular 5 的 ng-book
。我正在使用 ngx-bootstrap
和 Bootstrap 4
。表单验证似乎并不像 Lerner 先生实现的那样有效。我不确定这是否是 ngx-bootstrap
的限制...有人知道吗?
编辑好的,我删除了 ngx-bootstrap
并为 Bootstrap 4
加载了 MaxCDN,但我遇到了同样的问题。错误消息没有出现。
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { NavbarComponent } from './navbar/navbar.component';
import { RegistrationFormComponent } from './registration-form/registration-form.component';
import {
FormsModule,
ReactiveFormsModule,
FormBuilder,
FormGroup
} from '@angular/forms';
@NgModule({
declarations: [
AppComponent,
NavbarComponent,
RegistrationFormComponent
],
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
registration-form.component.ts
import { Component, OnInit } from '@angular/core';
import {
FormBuilder,
FormGroup,
Validators
} from '@angular/forms';
@Component({
selector: 'app-registration-form',
templateUrl: './registration-form.component.html',
styleUrls: ['./registration-form.component.scss']
})
export class RegistrationFormComponent implements OnInit {
regForm: FormGroup;
// name: AbstractControl;
constructor(fb: FormBuilder) {
this.regForm = fb.group({
'name': ['', Validators.required],
// 'email': ['', Validators.required],
// 'password': ['', Validators.required],
// 'password_confirmation': ['', Validators.required]
});
// this.name = this.regForm.controls['name'];
}
ngOnInit() {
}
onSubmit(value: string): void{
console.log(value);
}
}
registration-form.component.html
<div class="row justify-content-center">
<h1>New User</h1>
</div>
<div class='row justify-content-center'>
<div class='col-6'>
<form [formGroup]='regForm'
(ngSubmit)="onSubmit(regForm.value)"
[class.error]="!regForm.valid && regForm.touched"
>
<div class='form-group'
[class.error]="!regForm.get('name').valid && regForm.get('name').touched">
<label>Name</label>
<input type="text" class='form-control' [formControl]="regForm.controls['name']">
<div *ngIf="regForm.controls['name'].hasError('required')" class="invalid-feedback">Name is required</div>
</div>
<div class='form-group'>
<label>Email</label>
<input type="email" class='form-control'>
</div>
<div class='form-group'>
<label>Password</label>
<input type="password" class='form-control'>
</div>
<div class='form-group'>
<label>Confirmation</label>
<input type="password" class='form-control'>
</div>
<button type="submit" class='btn btn-default'>Submit</button>
</form>
</div>
</div>
最佳答案
根据文档,它会通过将 class="was-validated"
添加到最外层的 div 来工作:link to bootstrap form validation .这将启动对您的字段的验证。此外,请记住使用 required
标记您的输入,并通过向表单传递 novalidate
工作代码示例:
<div class="container" class="was-validated">
<form [formGroup]="regForm" novalidate (ngSubmit)="submitForm(regForm.value)">
<div class="row justify-content-center">
<div class="form-group col-6">
<label class="col-12 col-form-label" for="email">Email</label>
<input type="email" placeholder="Email address" class="form-control form-control-lg col-12" id="email" [formControl]="regForm.controls['email']"
required>
<div class="invalid-feedback">
Please provide a valid email.
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="form-group col-6">
<label class="col-12 col-form-label" for="password">Password</label>
<input type="password" placeholder="Password" id="password" class="form-control form-control-lg col-12" [formControl]="regForm.controls['password']" required>
<div class="invalid-feedback">
Please provide a password.
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="form-group col-6">
<button type="submit" class="btn btn-outline-secondary btn-block col-12">Sign in</button>
</div>
</div>
</form>
</div>
您可以 - 并且可能应该以编程方式添加 class="was-validated"
,而不是像我那样对其进行硬编码。
如果您对此有任何疑问,请随时评论我的帖子 - 我会更新我的答案。
关于Angular 5 ngx-bootstrap 表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47348851/
是否可以为 ngx-bootstrap 日期选择器全局配置日期格式? 该文档提到了 BsDatepickerConfig 类以及如何将其传递给每个单独的日期选择器,但我有点惊讶似乎不可能全局配置它(至
@swimlane/ngx-datatable 虚拟滚动仅适用于缓存行。缓存的行保留在数组中。就我而言,该行的数量可能超过 1000 万。如何不缓存那些行并使用虚拟滚动? 问题重现: 1) 没有缓存行
我需要一个堆叠条形图和折线条形图之间的组合图,你能帮我举个例子吗?我正在阅读此文档:Demo for combo charts 但是我无法理解这个例子。 最佳答案 对于在搜索包含组合图表的方法时偶然看
我正在为我的 angular6 项目使用 NGX-Bootstrap。我有反应形式并向它添加了日期选择器,同时从日期选择器返回值获得完整格式例如:“2018-11-07T05:12:35.000Z”。
您如何将 customColor 属性用作函数? 我希望构建一个散点图,并将所有负值的点标记为红色,将所有正值的点标记为绿色。我认为 customColor 功能可以让我这样做,但我只看到 custo
同时ngx-i18next是 i18next 的包装我特别想知道 ngx-translate 之间与翻译相关的差异是什么和i18next . 最佳答案 i18next 是非 Angular 专有的 -
我目前正在开发 Angular CLI 应用程序。几个小时前我完成了一些部分,关闭项目,现在我想再次运行项目以继续我的工作。但是我没有成功编译项目,而是在 ngx-bootstrap 模块上遇到错误。
我是 Angular 4 和 ngx-datatable 的新手,但我遇到了困难。现在,我有一个带有简单 rowDetail 的 ngx-datatable,就像显示的一样 here .问题是我需要
在我的元素中,我使用的是 bootstrap 4 和 ngx-bootstrap。现在我需要创建一个组件,其中包含 2 个可滚动的 div,通过选项卡切换。 我想在 stackblitz 中展示一个示
我不完全理解触发器对 https://valor-software.com/ngx-bootstrap/#/tooltip#triggers-custom 到底做了什么的概念 例如,当我们这样做时:
我在使用 ngx-translate-messageformat-compiler 插件时遇到了问题(添加复数形式后 json 文件解析失败)。 ¿有其他选择吗? 最佳答案 我决定实现一个自定义管道:
我已安装 ngx-bootstrap使用命令 npm install ngx-bootstrap --save但是当我尝试构建解决方案时,它仍然说 ERROR in src/app/app.modul
我对 Angular 还很陌生。我运行这个来开始我的项目:git 克隆 https://github.com/angular/quickstart appName 我将其更新到 Angular 4,一
我尝试在使用 system.js 的 Angular 4 项目中使用 ngx-datatable 来加载模块,但它会抛出如下错误: Can't bind to 'rows' since it isn'
我执行了以下步骤 (1)新建angular-cli项目(angular-cli 1.5.0) (2) 添加依赖: npm i @ngx-translate/core @ngx-translate/ht
我想对 ng2-select 中的项目使用 ngx-translate。我能想到的唯一方法是在绑定(bind)之前使用翻译服务并在 ts 文件中改变项目的文本。 有没有办法使用管道或指令,因为我想让它
我有一个带有嵌套翻译的翻译文件: ... "LANG": { "Dutch": "Néerlandais", "English": "Anglais", "French": "
这是我第一次更新角度。版本是10.2.3,我需要更新到11。我正在遵循官方文档中的指南。。我在控制台“Package”@Nicky-lenaers/NGX-SCROLL-TO“对”@ANGLING/C
我在 Angular 6 中使用 ngx-toastr 进行 http 错误通知,就像在 httpInterceptor 中注入(inject) ToastrService export cl
我安装了 ngx-clipboard,如 documentation 中所述并将 js 也包含在 systemjs.config 中。但是我收到以下错误: Unhandled Promise reje
我是一名优秀的程序员,十分优秀!