【发布时间】:2018-12-23 20:59:02
【问题描述】:
我现在在一个个人项目中使用 Clarity,我非常喜欢这个设计系统,所以我会继续询问很多(抱歉)。
我今天尝试为输入到表单的类型号实现多重验证消息错误。 Docs 解释说我应该使用*clr-control-error 来实现这一点,但这是不可能的。
目前验证类型号输入以显示“必需”文本工作正常。
但是如果用户尝试在字段中输入一个字母呢?它发生在'e'字符上。在这种情况下,我想显示另一个文本,例如“无效参数”或相关内容。
我正在尝试这样做:
<clr-input-container>
<label class="clr-col-4 clr-col-md-4">Precio de Costo</label>
<input class="clr-col-8 clr-col-md-8" clrInput type="number" formControlName="precioCosto" />
<clr-control-error *clrIfError="'required'">Requerido</clr-control-error>
<clr-control-error *clrIfError="'invalid'">Parámetro Inválido</clr-control-error>
</clr-input-container>
但总是显示第一条消息。我也尝试使用*ngIf,但看起来与*clr-control-error 存在冲突。
你有办法解决这个问题吗?我将非常感谢您的帮助。
更新:添加控制器代码以澄清问题:
import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators, FormGroup } from '@angular/forms';
@Component({
selector: 'app-productos',
templateUrl: './productos.component.html',
styleUrls: ['./productos.component.scss']
})
export class ProductosComponent implements OnInit {
private productoForm: FormGroup;
constructor(
private fb: FormBuilder
) { }
ngOnInit() {
this.setProductoForm();
}
get f() { return this.productoForm.controls; }
setProductoForm() {
this.productoForm = this.fb.group({
id: [this.productos.length + 1],
nombre: ['', Validators.required],
laboratorio: ['', Validators.required],
unidadMedida: ['', Validators.required],
precioCosto: ['', Validators.required],
precioVenta: ['', Validators.required]
});
}
}
【问题讨论】:
-
能否提供在控制器中创建表单控件的代码?
-
完成,@JeremyWilken。
标签: vmware-clarity