2016-07-31 12 views
1

ich versuchen, ein Formular zu validieren productForm von AngularJS Direktiven, so dass ich versuchen:AngularJS Validierungsproblem

<form id="productForm" name="productForm" novalidate> 
    <div style="width: 100%; margin-top: 15px; float: right; "> 
       <label style="width:103px;float:right" class="col-sm-2" for="ProductName">ProductName: </label> 

       <div style="float:right" class="col-sm-5"> 
        <input ng-required="true" class="form-control" style="float:right" type="text" id="ProductName" name="ProductName" ng-model="modal.ProductName" value="" /> 
       </div> 
       <div style="float:right" class="col-md-7" > 
        <span class="help-block" ng-if="productForm.ProductName.$error.required && productForm.ProductName.$dirty && productForm.ProductName.$touched "> Name is Must</span> 
       </div> 

    </div> 
    <button class="btn" style="background-color: #ed9c28;" type="button" ng-click="Save()" ng-disabled="productForm.$invalid">Save</button> 
</form> 

Auf diese Weise ist das Problem: wenn Benutzer die ProductName berühren und dann Fokus verloren, die erforderliche Meldung nicht angezeigt (es wurde nur angezeigt, wenn der Benutzer die Eingabe eingeben und dann den gesamten Text von der Eingabe löschen, aber ich möchte eine Fehlermeldung anzeigen, wenn die Eingabe leer ist), ich versuche productForm.ProductName.$touched in ng-if Fehlermeldung zu tun es, aber es funktioniert nicht, wie kann ich es tun?

+0

Um zu verstehen, was das los tun: ''


                            
    developer033
                                
                            
                        
                    

Antwort

0

würde ich den Scheck für $ schmutzig und stattdessen weglassen überprüfen $invalid und $touced:

ng-if="productForm.ProductName.$invalid && productForm.ProductName.$touched" 
+0

Es ist nicht die Antwort. 'ngShow' und' ngIf' funktionieren beide in diesem Fall (auch wenn 'ngShow' in keinem Fall verwendet werden sollte). – developer033

+0

@ developer033 Warum sollte ngShow auf keinen Fall verwendet werden? Die Lösung ist, den Dirty Check wegzulassen und der Hinweis, dass ich mit ng-show arbeiten würde, war nur ein Hinweis. Aber vielleicht kannst du mich überzeugen ... –

+0

Nun, 'ngShow' wird als eine schlechte Praxis angesehen. 'ngIf' wird empfohlen, aber Sie können' ngShow' verwenden. Was ich hier zeige ist, dass sein Problem nicht mit "ngIf" ist. – developer033