2

以下のテキスト フィールドでは、検証に ng-pattern を使用し、ng-message を使用してメッセージを表示しています。検証は正規表現 (/^\d+$/ または /^[0-9]+$/) の両方で正常に機能しますが、何らかの理由で正規表現 (/^\d+$/) は数値入力に対しても false を返しますテンプレートキャッシングと一緒に使用している間。これら2つのアプローチの間の問題を理解できませんでした。以下の templateCaching 出力を見つけてください。どんな助けでも大歓迎です。

input type="text" ng-model="appId" name="appId" class="new-app" ng-pattern="/^\d+$/" placeholder="アプリケーション ID を入力してください" 必須

メッセージ :

div ng-message="パターン" クラス="エラーメッセージ"

templateCaching で動作しない:

input type="text" ng-model="appId" name="appId" class="new-app" ng-pattern="/^\d+$/" placeholder="アプリケーション ID を入力してください" 必須

templateCaching と別のビュー ファイルの両方を使用する:

input type="text" ng-model="appId" name="appId" class="new-app" ng-pattern="/^[0-9]+$/" placeholder="アプリケーション 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 に答える