Angularjs NGP模式的问题

Angularjs NGP模式的问题,angularjs,ng-pattern,Angularjs,Ng Pattern,我试图在信用卡结账表单上设计一个漂亮的到期日期输入,当用户输入时,它会自动在到期月份和到期年份之间插入“/”。由于我在输入中引入了ngPattern验证,所以模型不再拾取输入值。Angular仅允许模型在验证成功后拾取输入值。由于我的代码,这基本上使我的漂亮特性无法工作。有人能找到解决办法吗。下面是我的代码 html <input ng-keyup="checkout.updateExp()" class="form-control" type="text" maxlength="7"

我试图在信用卡结账表单上设计一个漂亮的到期日期输入,当用户输入时,它会自动在到期月份和到期年份之间插入“/”。由于我在输入中引入了ngPattern验证,所以模型不再拾取输入值。Angular仅允许模型在验证成功后拾取输入值。由于我的代码,这基本上使我的漂亮特性无法工作。有人能找到解决办法吗。下面是我的代码

html

<input ng-keyup="checkout.updateExp()" class="form-control" type="text"  maxlength="7" placeholder="mm / yy" required autocomplete="off" name="exp" ng-pattern="/\d{2}\s\/\s\d{2}/" ng-model="checkout.cf.exp">

为什么不使用正则表达式手动验证它,而不是使用ng模式进行验证?您可以手动设置字段的$validity,就像angular使用ng模式那样

在html中添加

ng-keyup="checkout.updateExp(form.exp)" name="exp"
form.exp
是表单,然后是输入字段的名称。我不知道表单名称是什么,因此您必须相应地替换它

vm.updateExp = function(formModel){
    /* existing code omitted */
    var expression = /\d{2}\s\/\s\d{2}/; // create RegEx
    formModel.$setValidity("pattern", expression.test(vm.cf.exp)); // set validity to whatever name you want, I used the name pattern
};

我可以通过指定表单名和字段名来使用from.exp吗?我不必将它们声明为角度模型吗?我是个新手。如果您能澄清这一点,我将不胜感激。@alaboudi-正确。您还可以通过控制器及其相应字段的名称访问(有多种方法可以剥猫皮:)。非常感谢。我已经实施了你的解决方案。
vm.updateExp = function(formModel){
    /* existing code omitted */
    var expression = /\d{2}\s\/\s\d{2}/; // create RegEx
    formModel.$setValidity("pattern", expression.test(vm.cf.exp)); // set validity to whatever name you want, I used the name pattern
};