Ich versuche ein System zu erstellen, in dem ich Informationen über Spieler und Teams anzeigen, bearbeiten und löschen kann, indem ich angular zusammen mit einer RESTful-API verwende. Ich habe die Teile in Betrieb, in denen ich alle Daten zeige und Daten in die Datenbank posten.Aktualisieren und Löschen eines Datensatzes innerhalb des Objekts
Der Teil, mit dem ich Probleme habe, ist die Aktualisierung von Daten, da ich es nicht schaffen kann, den HTTP-Putt mit den richtigen Daten arbeiten zu lassen.
HTML
<script type="text/ng-template" id="team-single.html">
<div class="team-box">
<div class="badge">
<img ng-src="images/{{x.club_name}}.png" width="100" height="100"></div>
<div ng-hide="editorEnabled">
<div class="team-name">{{x.club_name}}</div>
<p><b>Manager:</b> {{x.club_manager}}</p>
<p><b>Ground:</b> {{x.club_ground}}</p>
<p><b>Nickname:</b> {{x.club_nickname}}</p>
<div class="team-p">{{x.club_info}}</div>
<a href="#" ng-click="editorEnabled=!editorEnabled">Edit Team</a>
</div>
<div ng-show="editorEnabled">
<p><input ng-model="x.club_name"></p>
<p><input ng-model="x.club_manager"></p>
<p><input ng-model="x.club_ground"></p>
<p> <input ng-model="x.club_nickname"></p>
<p><input ng-model="x.club_info"></p>
<input type="hidden" name="id" ng-value="" />
<a href="#" ng-click="editorEnabled=!editorEnabled; updateTeam($index)">Save</a>
</div>
</script>
<div class="row teams">
<div class="container">
<div class="col-md-4" ng-repeat="x in teams" ng-include="'team-single.html'"></div>
</div>
JS
var app = angular.module('footballApp', []);
app.controller("TeamCtrl", function ($scope, $http) {
$scope.updateTeam = function() {
$http({
method: 'PUT',
url: 'clubs.php/teams/' + id,
data: ??,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
};
});
Ich habe einen Editor auf dem Front-End aktiviert die Felder zu bearbeiten. Ich weiß nicht, wie ich das eine Objekt, das bearbeitet wird, zurück in die updateTeam-Funktion übergebe, ohne das gesamte Team-Array zu übergeben.
Auch in der HTTP-PUT muss ich das ID-Feld des entsprechenden Clubs in der URL verwenden, aber ich bin mir nicht sicher, wie man das zurücksendet.
Jede Hilfe würde sehr geschätzt werden.
Sie hinzufügen können [ngChnage] (https: // docs. angularjs.org/api/ng/directive/ngChange), um die Aktualisierungsfunktion nach Änderungen einzuleiten, oder [$ watch] (https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$watch) Für Änderungen gibt das Modell –
PUT eine Datei oder Ressource an einen bestimmten URI. POST sendet Daten an einen bestimmten URI und erwartet, dass die Ressource an diesem URI die Anforderung verarbeitet. Sie möchten wahrscheinlich POST. – tic