Parsing 如何在不输入任何字段的情况下触发角度分析器
如主体所述,我如何触发动作在Parsing 如何在不输入任何字段的情况下触发角度分析器,parsing,angularjs,triggers,Parsing,Angularjs,Triggers,如主体所述,我如何触发动作在 modelController.$parsers(...) 没有用户输入。。。我能想到的唯一方法是将它们包装在函数中并调用它,但是有更好的触发方法吗 **//pseudo $(modelController).trigger('just got dirty');** 我需要它的原因是触发输入字段在提交页面上进行自我验证。这个问题对我来说也是实际的。。。因为我正在通过以下方式解决此问题: var triggerParsers = function() {
modelController.$parsers(...)
没有用户输入。。。我能想到的唯一方法是将它们包装在函数中并调用它,但是有更好的触发方法吗
**//pseudo
$(modelController).trigger('just got dirty');**
我需要它的原因是触发输入字段在提交页面上进行自我验证。这个问题对我来说也是实际的。。。因为我正在通过以下方式解决此问题:
var triggerParsers = function() {
var val = ngModel.$viewValue;
ngModel.$setViewValue(null);
ngModel.$setViewValue(val);
};
我找到了一种解决方法-只需使用模型值调用解析器:
angular.forEach(ngModel.$parsers, function (parser) {
parser(ngModel.$viewValue);
});
它非常简单,似乎是最正确的解决方案。我相信答案是do元素。trigger('change');我尝试过使用element.trigger,但这个技巧不起作用,这是因为事件被触发,但值没有更改,因此角度不会启动解析器。这对我来说非常有效(版本1.2.29)-谢谢!为什么这个简单的答案不更普遍?要稍微改进答案,请使用本机
For
循环,而不是角度。forEach
,检查解析器的name
属性,仅重新触发所需内容,而不是所有内容(如果适用),并在触发所需内容后中断循环。然而,这些只是微观优化。