2016-05-13 14 views
1

Ich entwickle gerade eine eckige App mit vielen Formen darin. Natürlich gibt es viele Formularvalidierung beteiligt und auch eine Menge Set-Fehler-Klasse, Set-Erfolg-Klasse usw.Winkelformvalidierungsklasse für jeden Eingang

gerade jetzt, gerade auf Eingabefeld sieht wie folgt aus:

<div 
    class="form-group" 
    ng-class="{ 
    'has-error': 
     form_provider_contact_data.company_name.$invalid && 
     !form_provider_contact_data.company_name.$pristine && 
     form_provider_contact_data.company_name.$touched, 
    'has-success': 
     form_provider_contact_data.company_name.$valid && 
     !form_provider_contact_data.company_name.$pristine && 
     form_provider_contact_data.company_name.$touched 
    }"> 
    <label class="col-sm-4 control-label" for="company_name"> 
    {{ 'LABEL_COMPANY_NAME' | translate }} 
    </label> 
    <div class="col-sm-8"> 
    <input 
     name="company_name" 
     type="text" 
     class="form-control" 
     id="company_name" 
     placeholder="{{ 'LABEL_COMPANY_NAME' | translate }}" 
     ng-model="contact_data.company_name" 
     required> 
    <p class="help-block"> 
     Bitte geben Sie einen Firmennamen an. 
    </p> 
    </div> 
</div> 

Mit vielen Formen/Eingaben wird es zu Tonnen ähnlichem Code, der schwer zu pflegen ist. Es sollte einen Weg geben, diese Eingabefelder programmatisch zu erstellen, aber jetzt knapp, ich weiß jetzt nicht, was der beste Weg dazu wäre. Kann mir jemand in die richtige Richtung zeigen?

Einige Klarstellung: Ich suche nach einer Möglichkeit, ein Eingabeelement mit Hilfe einer Vorlage (oder etwas ähnliches) zu erstellen, vielleicht nur durch einige Parameter (zB Name/ID, Validierungen, Etiketten und Fehler, etc .)

+0

Dafür gibt es viele Frameworks: https://github.com/json-schema-form/angular-schema-form –

+0

Ich denke ngMessages ist besser als Ihr Ansatz. Hier https://docs.angularjs.org/api/ngMessages – oguzhan00

Antwort

0

ich bin nicht ganz sicher, ob Sie über die Validierung fragen:

für jede Eingabevalidierung Klassenformular

oder programmatisch zu erzeugen Form:

sollte es eine Möglichkeit geben, diese Eingabefelder

oder so erstellen programmatisch etwas, das nützlich sein könnte: https://docs.angularjs.org/api/ngMessages/directive/ngMessages

(es macht alle Fehlerbedingungen mit Formularvalidierung Verwaltung viel besser beherrschbar, es ist Teil des Kernwinkels seit 1.3)

+0

Danke, das ist schon eine Lösung für ein anderes Problem, über das ich nachgedacht habe;) Aber die Hauptfrage ist etwas anders, ich habe meine Frage zur Klarstellung bearbeitet. – jacksbox

+0

Dieser wird bereits in den Kommentaren erwähnt - http://schemaform.io/ - ein ähnliches Projekt - https://www.forms-angular.org/ –

0

Sieht so aus, als ob Sie AngularJS Formularvalidierung zusammen mit Boots verwenden möchten Formularvalidierungsklassen von Trap. Wenn Sie dies manuell tun, wird viel Nicht-DRY-Code erzeugt. Sie können also generische Anweisungen für diese Validierung erstellen.

Ich habe vor kurzem eine Bower-Komponente http://sagrawal14.github.io/bootstrap-angular-validation/ veröffentlicht, um das gleiche zu erreichen. Sieh dir das an.