Legen Sie das erforderliche Attribut für ein Eingabeelement fest, wenn es nicht ausgeblendet ist

8

Ich arbeite an einem dynamischen Formular mit angular.js. Eingabefeld

%Vor%

Wenn condition () false zurückgibt, wird das Eingabefeld nicht angezeigt. Aber indem ich auf einen Absenden-Button klicke, komme ich auf chrome, die Nachricht:

%Vor%

Nun, eine Lösung ist, ng-erforderlich zu verwenden:

%Vor%

Nun, hier muss ich den Code wiederholen, indem ich die Bedingung () mehrmals benutze.

Es wird schlecht, wenn Sie ng-show's verkapseln können:

%Vor%

Gibt es einen besseren Weg, sollte das erforderliche Tag vorhanden sein, wenn die Eingabe sichtbar ist, und nicht, wenn es ausgeblendet ist.

    
Artisan72 30.04.2015, 19:16
quelle

3 Antworten

13

Anstatt ng-show zu verwenden, verwenden Sie ng-if, denn wenn Sie ng-show verwenden, ist dieses Element immer noch Teil von DOM.

etwas wie das:

%Vor%

Auf diese Weise erhalten Sie keinen Fehler

%Vor%     
Mudasser Ajaz 30.04.2015, 19:32
quelle
2

Eine Option besteht darin, eine Variable zu verwenden, anstatt eine Funktion aufzurufen.

%Vor%

und in Ihrem Controller können Sie die isRequired-Variable in Ihren condition1 () - und / oder condition2 () - Funktionen auf true oder false setzen.

%Vor%

Offensichtlich ist das kein kugelsicherer Code. Aber es ist ein Anfang.

    
beaudetious 30.04.2015 19:32
quelle
1

Ich würde vorschlagen, dass Sie ng-if verwenden müssen, was das Element aus dem Formular entfernt, oder Sie können DOM sagen, wenn die Bedingung nicht erfüllt ist. Ihr Code wird wie

%Vor%     
Pankaj Parkar 30.04.2015 19:29
quelle

Tags und Links