我试图将ng-minlength和ng-maxlength添加到表单输入字段。发生了一些奇怪的事情。当输入的数字小于最小长度时,它将消失,并且永远不会添加到模型中。
但是,如果您使用超过13位的数字,它会渲染但不会添加到模型中。
app.directive('cmNumber', ['$compile', function ($compile) {
return {
restrict: 'A',
compile: function (element) {
var onlyNumbers = /^\d+$/;
element.attr('ng-minlength', '13');
element.attr('ng-maxlength', '19');
element.attr('ng-pattern', onlyNumbers);
element.attr('placeholder', '123456789112345');
element.removeAttr('cm-Number'); //remove the attribute to avoid infinite loop
return function (scope, element) {
$compile(element[0].form)(scope);
};
}
};
}]);
答案 0 :(得分:1)
只有您需要进行更改cm-number
而不是cm-Number
所有内容都应该是小的。
否则您的代码完全正确。上述指令背后的原因不起作用是你指的是角度测试版1.3.0-beta.5
,它可能已经破坏了你正在尝试的东西。
您应该将其升级为稳定版的angular 1.3.15
,也可以升级为最新的angular 1.4+
版本