所以,我为另一个答案创建了这个。让我知道这种设置是否适合您。在这里,错误旨在显示在按钮单击后服务器的响应中。您可以进行相应的修改。
我已为该字段提供了一个自定义模板,如下所示:
formlyConfigProvider.setWrapper({
name: 'inputWrapper',
template: '<div ng-class="to.changeColor==\'red\'? \'redBorder\' : \'otherBorder\'"><formly-transclude></formly-transclude>{{to.keyVal}}</div>'
});
表单元素通过模式格式定义,以允许单独访问每个元素。
vm.schema={
"schema": {
"coolValue" : [{
"key": "coolValue",
"type": "input",
"wrapper": ['inputWrapper'],
"templateOptions": {
"type" : "text",
"label": 'Cool Value',
"keyVal":"",
"changeColor":"green"
}
}]
}
};
最后,onSubmit 函数
function onSubmit() {
//Do whatever you want here
//Let's say your server returns an error "iNVALID Credentials"
var response={
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization",
}
],
"code": 401,
"message": "Invalid Credentials"
}
};
vm.schema.schema.coolValue[0].templateOptions.changeColor="red";
vm.schema.schema.coolValue[0].templateOptions.keyVal=response.error.message;
}
});
您基本上可以在此处传递来自服务器的任何错误消息或响应。
CSS 包含一个类,用于将红色 border 添加到该字段。您可以随意禁用此功能。如果您还需要此区域的任何内容,请随时 ping。
这是DEMO