2

我在下面的文本字段中使用 ng-pattern 进行验证并使用 ng-message 显示消息。验证适用于正则表达式(/^\d+$/ 或 /^[0-9]+$/),但由于某种原因,即使对于数字输入,正则表达式(/^\d+$/)也会返回 false同时与模板缓存一起使用。我无法弄清楚这两种方法之间的问题。请找到以下模板缓存输出。任何帮助表示赞赏。

input type="text" ng-model="appId" name="appId" class="new-app" ng-pattern="/^\d+$/" placeholder="Enter an Application ID" 必填

信息 :

div ng-message="pattern" class="error-messages"

不使用模板缓存:

input type="text" ng-model="appId" name="appId" class="new-app" ng-pattern="/^\d+$/" placeholder="Enter an Application ID" 必填

使用 templateCaching 和作为一个单独的视图文件:

input type="text" ng-model="appId" name="appId" class="new-app" ng-pattern="/^[0-9]+$/" placeholder="Enter an Application ID" 必填

$templateCache.put('/views/layouts/test.html', '<input type="text" ng-model="appId" name="appId" class="new-app" ng-pattern="/^ [0-9]+$/" placeholder="输入应用程序 ID" 必填> <input type="text" ng-model="appId" name="appId" class="new-app" ng-pattern=" /^\d+$/" placeholder="输入应用程序 ID" 必填>');

4

1 回答 1

0

我对 templateCache 有类似的问题,这是由于模式中有特殊字符(如正斜杠)并且我的验证失败。转义它们解决了这个问题:所以如果你有ng-pattern="/^\d+$/"html 文件而不是ng-pattern="/^\\d+$/"你的 templateCache 语句。

于 2016-08-15T15:57:26.127 回答