Wenn ich du wäre, würde ich die %code% Direktive anstelle von %code% verwenden. Die %code% -Direktive wird jedes Mal ausgelöst, wenn sich der Wert des Kontrollkästchens ändert.
HTML
%Vor%Wie Sie im obigen HTML sehen können, können wir das Benutzermodell an unsere updateRole-Funktion übergeben und den Rest von dort behandeln.
JS
%Vor%Wie Sie sehen können, hat sich Ihre Update-Funktion ein wenig verändert. Jetzt können Sie das %code% vom Objekt %code% erhalten und weitermachen.
Ich möchte die Daten in einer Tabelle aktualisieren, die die Firebase-Datenbank anzeigt.
Jede Zeile in der Tabelle repräsentiert die Daten eines bestimmten Benutzers. Mein Ziel ist es, die Daten in einem Feld von Benutzerdaten aktualisieren zu können. In diesem Beispiel versuche ich, die Benutzerrolle basierend auf einem Ankreuzfeld %code% zu ändern.
Wie kann ich die Benutzerkennung der Zeile, die ich gerade bearbeite / aktualisiere, in die Update-Funktion übernehmen? Zur Zeit nimmt der Code die aktuelle Benutzerkennung an.
Die Funktion, die ich benutze Update Benutzerinfo ist:
%Vor%die HTML-Ansicht:
%Vor%Derzeit wird nur der aktuelle Benutzer aktualisiert, und es wird auch ein überprüfter Wert für alle Benutzer beibehalten, jedoch nicht nur der aktuelle Benutzer selbst.
Wie in einer anderen Antwort erwähnt, liegt es daran, dass Sie nur einen Benutzer aktualisieren. Sie haben bereits den Benutzer, den Sie mit dem 'obj' von Ihrem ng-repeat aktualisieren möchten, also müssen Sie die Datenbank nicht erneut aufrufen, um den Benutzer zu erhalten, den Sie aktualisieren möchten.
Aus den Firebase-Dokumenten: "Sie können den aktuell angemeldeten Benutzer auch mithilfe der currentUser-Eigenschaft abrufen." Durch diese Logik wird der aktuelle Benutzer immer derjenige sein, der das Kontrollkästchen bearbeitet, und ich bin sicher, dass Sie nicht möchten, dass Benutzer sich selbst zu Administratoren machen.
%Vor%Und deine js sollte aussehen
%Vor%Das liegt daran, dass Sie sich auf den aktuellen Benutzer bei jedem Update beziehen, das Sie für die Datenbank ausführen. %code% Sie aktualisieren denselben Benutzer die ganze Zeit, Sie müssen die ID von dem Benutzer erhalten, den Sie aktualisieren möchten. etwas wie das:
%Vor%Und erhalte die ID in deiner Funktion
%Vor%