Hallo,
ich fuchse mich gerade ein bisschen mit AngularJS ein und versuche jetzt bereits vorhandene Daten in eine PostgreSQL Datenbank upzudaten. Sie sieht so aus:
Column | Type | Modifiers
----------±----------------------±---------------------------------------------------
id | integer | not null default nextval(‚items_id_seq‘::regclass)
text | character varying(40) | not null
complete | boolean |
Jetzt möchte ich eine Zeile mit vorgegebener ID ändern. Das ist meine PUT-Funktion.
router.put(‚/api/v1/todos/:todo_id‘, (req, res, next) => {
const results = ;
// Grab data from the URL parameters
const id = req.params.todo_id;
// Grab data from http request
const data = {text: req.body.text, complete: req.body.complete};
// Get a Postgres client from the connection pool
pg.connect(connectionString, (err, client, done) => {
// Handle connection errors
if(err) {
done();
console.log(err);
return res.status(500).json({success: false, data: err});
}
// SQL Query > Update Data
client.query(‚UPDATE items SET text=($1), complete=($2) WHERE id=($3)‘,
[data.text, data.complete, id]);
// SQL Query > Select Data
const query = client.query(„SELECT * FROM items ORDER BY id ASC“);
// Stream results back one row at a time
query.on(‚row‘, (row) => {
results.push(row);
});
// After all data is returned, close connection and return results
query.on(‚end‘, function() {
done();
return res.json(results);
});
});
});
Das habe ich im Controller:
$scope.UpdateData = function () {
var data = $.param({
Complete: $scope.id,
Text: $scope.text,
})
$http.put('/api/v1/todos/' + todoID)
.success((data) => {
$scope.todoData = data;
console.log(data);
})
};
und auf der HTML-Seite:
Put/Update
Text:
<p>ID : <input type="number" name="id" ng-model="age" required /></p>
<input type="submit" value="Submit" />
<hr />
{{ todo }}
</form>
Hat da jemand eine Idee wie ich es anders machen kann? Hab mich ein bisschen festgefahren!
Danke für eure Hilfe!