我有一些带有一些表格的页面。
每个表单都包含一些字段约束,例如required
和更多。
我只想在用户与验证错误交互时显示错误(UX?=>是)。
确实,只要领域$pristine
意味着没有触摸,不应该显示任何错误。
我设法用很多浏览器来实现这个要求,除了......IE浏览器(特别是 IE > 10)。
事实上,IE 似乎将所有字段视为$dirty
从一开始就!
在网上冲浪,我发现了这个“修复”:
MyMainAppModule.config(['$provide', function ($provide) {
$provide.decorator('$sniffer', ['$delegate', function ($sniffer) {
var msie = parseInt((/msie (\d+)/.exec(angular.lowercase(navigator.userAgent)) || [])[1], 10);
var _hasEvent = $sniffer.hasEvent;
$sniffer.hasEvent = function (event) {
if (event === 'input' && msie > 10) {
return false;
}
_hasEvent.call(this, event);
};
return $sniffer;
}]);
运行它......哇 IE 现在运行得很好。
然后在 Safari Mobile (Iphone) 中运行它......令人失望。
为什么?因为任何键入的字符都会在事件处理程序之后考虑,例如$watch
等等...导致预期与发生的事情之间发生转变。
遗憾的是,它之前在 Safari Mobile 中运行良好。
所以,实际的困境是:优先考虑 Safari Mobile 还是 IE :)
有人在IE中实验过这种情况吗?
我可以实施其他一些“更好”的修复吗?
RETURN_hasEvent.call(this, 事件);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)