0

過去数バージョンで AngularJS で正規表現パターン検証を使用してきましたが、正常に機能しました。

私のアプリケーションでは、対応する AngularJS 検証ディレクティブがバインドされているスコープ プロパティによって検証パターンが公開される必要があります。v1.3 より前は、次のようになっていました。

// On the controller
$scope.validationPattern = "^\\d*$"; // Allow only numeric digits

<!-- in the HTML page --->
<input type="text" name="age" ng-pattern="/{{validationPattern}}/" />

AngularJS を v1.4 (v1.3 をバイパス) に更新したところ、上記のアプローチが機能しなくなっていることがわかりました。v1.3の移行に関する注意事項を見ると、これは予期された動作であり、次のような新しいアプローチが必要であることがわかります。

// On the controller
$scope.validationRegexp = /^\d*$/; // Use a RegExp instead of a string

<!-- in the HTML page --->
<input type="text" name="age" pattern="{{validationRegexp}}" />

ただし、これを機能させることはできません。検証パターンをインライン (HTML 入力要素内) に配置すると正常に動作しますが、スコープ オブジェクトに移動してpatternorng-patternディレクティブにバインドすると、検証は行われません。

問題を示すJSFiddleを次に示します。

何か提案はありますか?

4

1 に答える 1

1

スコープ変数の名前のみを使用する必要があります。

<input type="text" name="age" ng-pattern="validationPattern" />
于 2015-07-09T16:45:32.480 に答える