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.
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%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.
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