正規表現がひどいのですが、変数でng-patternを使用できるかどうか疑問に思いました
例えば、
ng-pattern="/^{{validationCode}}$/"
ここで、validationCodeは、コントローラーの$ scopeにアタッチされた変数です。
// Inside Controller
$scope.validationCode = 'response returned from server'
場合
$scope.validationCode = 1234123412351234
その場合、ng-patternは次のようになります。
ng-pattern="/^1234123412351234$/"
しかし、これは機能しておらず、本当に必要のないカスタムディレクティブを作成する必要があるようです。
ng-pattern
は正規表現を必要とします。
Angularから ドキュメントng-pattern
について:
値が
RegExp
パターン式と一致しない場合、パターン検証エラーキーを設定します。期待値は、インラインパターンの場合は/regexp/
、スコープ式として定義されたパターンの場合はregexp
です。
つまり、コントローラーでRegExpを作成できます。
$scope.pattern = new RegExp(patternFromServer);
そしてそれを使用します:
<input ng-model="foo" ng-pattern="pattern">