我的JHipster生成器版本是:generator-jhipster 2.27.1
我正在使用show-validation
进行表单验证。除了以下情况外,一切似乎都正常。
required
的文本字段。has-error
类尚未删除。表格组仍然保持红色。has-error
现已删除。这是来自 form.directive.js
的相关代码$inputs.each(function() {
var $input = $(this);
scope.$watch(function() {
return $input.hasClass('ng-invalid') && $input.hasClass('ng-dirty');
}, function(isInvalid) {
$formGroup.toggleClass('has-error', isInvalid);
});
}
表单验证指令不是立即更新,而是由一个输入更改后面。我无法弄清楚代码的哪一部分需要修改。
添加了控制台日志,但无济于事。我认为它与文本值相对于模型值有关,但不知道如何解决它。
答案 0 :(得分:2)
这个怎么样?
(添加:attrs,formCtrl attr链接功能并更改$ watch.function - 如果需要,取消注释脏检查)
link: function (scope, element, attrs, formCtrl) {
element.find('.form-group').each(function() {
var $formGroup = $(this);
var $inputs = $formGroup.find('input[ng-model],textarea[ng-model],select[ng-model]');
if ($inputs.length > 0) {
$inputs.each(function() {
var $input = $(this);
scope.$watch(function() {
//inputs need to have 'name' attribute for this to work
return formCtrl[$input[0].name].$invalid;
//&& formCtrl[$input[0].name].$dirty;
}, function(isInvalid) {
$formGroup.toggleClass('has-error', isInvalid);
});
});
}
});
}