Angular验证输入类型="email"为type ="text"

Ois*_*ery 5 javascript validation angularjs

我的Angular应用程序有一个带有电子邮件/用户名输入字段的登录表单:

<input type="email" required/>
Run Code Online (Sandbox Code Playgroud)

输入为type ="email",因此iOS中会显示正确的键盘.
但是,验证应该是type ="text"输入的验证,以允许用户名.

基本上我需要覆盖Angular来验证type ="email"为type ="text"
这是一个基本的Plunker入门.

注意:我尝试使用ng-pattern来验证正则表达式,但它似乎只适用于type ="text"

Tad*_*cik 5

我不认为有可能改变输入类型='电子邮件'是如何处理角度而不改变它的来源,但也许你可以尝试:

<input type="text" required late-email />
Run Code Online (Sandbox Code Playgroud)
angular.module('yourApp').directive('lateEmail', function () {
    return {
        priority: -1,
        link: function(scope, elem, attrs) {
            elem.attr('type', 'email');
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

这里重要的是优先级,因为angularjs输入指令需要首先运行(链接)所以将使用'text'作为输入类型,然后lateEmail将输入类型更改为电子邮件.