2016-03-27 12 views
0

入力タグに2つのバリデーションを適用すると、md-input-containerに問題があります。私はng-model-options = "{updateOn: 'blur'}"を使用していますが、問題はそれがなくても発生します。例:アングル材質:2番目の検証メッセージが表示されない

<md-input-container> 
    <label>Description:</label> 
    <input name="description" ng-model="list.description" type="text" ng-minlength="3" required /> 
    <div ng-messages="listForm.description.$error"> 
     <div ng-message="minlength">List description is too short</div> 
     <div ng-message="required">List description is required</div> 
    </div> 
</md-input-container> 

「Te」と入力してTabキーを押すと、ng-minlength検証メッセージが表示されます。しかし、入力を空のままにしておくと、必要なメッセージは表示されません(しかし、入力は装飾されているはずです)。

ここでも同じ動作が再現可能です(https://material.angularjs.org/latest/demo/input)。 Erros - > Description入力で、30文字以上入力してから入力を空にすると、メッセージは表示されません。しかし、正しい値を入力して入力を空にすると、メッセージが表示されます。

答えて

0

私の意見ではminlengthrequiredは同じものです。だから、あなたはどちらか1人でなければなりません。リンクの例を参照してください。あなたはそれが同じものであるので、それがng-messageにエラーが表示されますinputng-minlengthを指定しない場合でも http://codepen.io/next1/pen/PNjdBz

。だから、私は両方の条件を確認するにはng-message-expを使用する必要があると思います。そして、あなたがminlengthrequiredを探しているうちに、maxlengthrequiredに関連した重要なデザイン文書に言及したリンクを参照してください。

+0

あなたが投稿の例では有線いただきました、私は最初の入力に

List description is too long
を追加した場合(入力が空白の場合)、それはあまりにも表示されるということです –

+0

私はそれらの 'のすべてに同じ' name'の属性を使用していましたそれは予期しない動作をしていました。 – nextt1

0

これは、角度材料とngMessagesの既知の問題です。

進行状況について通知を受けたい場合は、次の問題に登録してください。私はあなたがこれを解決しなければならない場合は、すぐに、あなたはあそこに説明し、回避策を利用するが、それは審美的に完璧ではないことを心に留めできるのと同じ...

https://github.com/angular/material/issues/6767

を行います。