CSS が (Chrome で) 有効になっていないという問題があり、Twitter Bootstrap と競合していると思います。
input.ng-invalid {
border-color: red;
outline-color: red;
}
私のパターンはコントローラーで次のように定義されています。
$scope.hexPattern = /^[0-9A-Fa-f]+$/;
ng-invalid
ライブ DOM から HTML をコピーすると、との両方ng-invalid-pattern
が設定されていることがわかりますng-pattern
。
<div class="control-group">
<label class="control-label" for="salt">Salt: </label>
<div class="controls">
<input type="text" id="salt" ng-model="salt" ng-pattern="hexPattern" class="ng-dirty ng-invalid ng-invalid-pattern">
</div>
</div>
Twitter Bootstrap Base CSS のFormsセクションの「Validation states」セクションで、error
クラスをコントロール グループ divに追加する必要があることがわかります。
<div class="control-group error">
質問:class=error
子入力に基づいて を設定するにはどうすればよいclass=ng-invalid
ですか? これは、いくつかのソフトなngクラスの表現で行うことができますか? コントローラーのコードでこれを設定できますか? プロパティの変更などのパターン評価を ".$watch" する方法はありますか? 私の「赤い」アウトラインを取得するための他のアイデアはありますか?