2014-09-23 8 views
10

Ich benutze "angular-xeditable", um Elemente innerhalb eines Formulars zu bearbeiten. Ich möchte alle Elemente jederzeit im "bearbeitbaren" Modus haben, z. Es muss keine Schaltfläche "Bearbeiten" gedrückt werden, bevor der Benutzer mit der Bearbeitung beginnt.Wie man den Bearbeitungsmodus "Winkel-Xeditable" immer aktivieren kann

Ich habe versucht, die $ show() in meinem Controller zu verwenden, um die Elemente in der Form zu aktivieren, jedoch scheint es, als ob die Elemente wieder in den Anzeigezustand gehen, zum Beispiel wenn "onaftersave" beim Speichern der Werte verwendet wird etc.

Wie mache ich das, um immer im Bearbeitungsmodus zu sein, in dem der Benutzer die Bearbeitung nie aktivieren muss, um mit der Bearbeitung der Werte zu beginnen?

Antwort

5

Ich hatte das gleiche Problem. Selbst wenn ich das Formular am Ende meiner Onaftersave-Funktion wieder anzeigen wollte, würde es immer noch nicht funktionieren. Ich vermute, dass die Sichtbarkeit ausgeblendet wird, nachdem die Onaftersave-Funktion ausgeführt wurde, aber ich habe nicht wirklich überprüft, ob das der Fall ist. Hier ist, wie ich um ihn bekam:

$scope.$watch('yourFormName.$visible', function() { 
    $scope.yourFormName.$show(); 
}); 

Nun, wenn die Form Sichtbarkeit Änderungen versteckt, es wird es nur zeigen, wieder unabhängig davon, wann sie geändert.

+0

hey tcox, ich bin vor demselben Problem, habe ich immer Tabelle wollen im editierbaren Modus bleiben. Ich habe es versucht, aber ich rufe $ scope.form.profileform auf. $ Visible = true; oder $ scope.form.profileform. $ show(); es sagt undefiniert. Mein Formularname lautet name = "form.profileform". können Sie mir bitte helfen – Jayesh

+0

Ich bin mir nicht sicher, ob Sie $ scope.form.profileform sagen müssen, versuchen Sie nur $ scope.profileform – tcox

1

Wenn Ihr Formular bereits geöffnet ist, und Sie wollen einfach nur offen halten nach der Einreichung, können Sie dies tun:

<form editable-form name="MyForm" onbeforesave="saveMyData()" onaftersave="keepFormOpen()"> 

und die Funktion keepFormOpen() würde wie folgt aussehen:

$scope.keepFormOpen = function() { 
    return "fake error message"; 
} 

Was dies tut, gibt dem Formular im Wesentlichen eine falsche Fehlermeldung, nachdem Sie Ihre Daten bereits gespeichert haben. Diese gefälschte Fehlermeldung unterbricht den Schließvorgang für Formulare, aber da sie aufgerufen wurde, nachdem Sie Ihre Daten bereits gespeichert haben, wirkt sich dies nicht auf die vorherige Übermittlung aus.

+0

danke. Ich bin froh .. es funktioniert .. du hast meinen Tag gemacht. – Jayesh

+0

Ich bin froh, dass ich helfen konnte! Vergiss nicht, es als Antwort zu akzeptieren, wenn es für dich funktioniert hat;) – bajuwa

7

versuchen Möglicherweise shown=true in Ihrem HTML hinzu:

<form editable-form shown="true"> 
+0

es funktioniert nicht. – Jayesh

+0

Das funktioniert für mich. Vielen Dank :) – Sampath

0

wirklich zu öffnen und die Form halten wir folgendes tun:

<form editable-form name="MyForm" onbeforesave="saveMyData()" onhide="MyForm.$show()"> 
Verwandte Themen