我已经多次重复此指令动态生成表单
app.directive('artMultiSelect', function (DemandFormUICommon) {
return {
restrict: 'A',
template: '<div class="customInput">' +
'<div class="secondColumn" ng-show="!readonly()">' +
'<select chosen multiple ng-options="{{inputOptions}}" ng-model="modelVariable" id="{{\'gcp-formField-\' + inputName}}"><option value=""></option></select><br /><div class="inputError">{{inputError}}</div>' +
'</div>' +
'</div>',
scope: {
modelVariable: '=artMultiSelect',
inputOptions: '@',
inputList: '=',
readonly: '&'
},
link: function (scope, element, attrs, ctrl) {
scope.$watch('modelVariable', function() {
var input = element.find('select');
var errorMessage = DemandFormUICommon.getFieldErrorMessage(input);
scope.inputError = errorMessage;
});
}
};
});
DemandFormUICommon.getFieldErrorMessage(input);
对于这个问题,这个函数的工作原理并不重要。它返回错误正确错误消息的字符串。
它应该是这样的:
通常这有效。但有时当错误消息被删除时会发生这样的事情:
就我而言,目前还没有关于错误信息的哪一部分存在的规则。它可以是一个字母或大部分文本。一旦出现这个错误,它仍然存在:
我检查了DemandFormUICommon.getFieldErrorMessage(input);
的错误消息始终是正确的。所以我猜问题是角度绑定的某个地方。你们有过这个问题吗?或者你有什么建议我应该尝试吗?