我想将收到的数据放入我的3个输入中。我从节点服务器收到json响应,控制器应该收到响应并将其放入我的3个输入中。 我收到了回复,但我无法将其放入输入
控制器:
$scope.edit = function(id, contact) {
console.log(id);
$http.get('/contactlist/' + id).then(function(response) {
console.log(response);
$scope.contact = response;
});
};
服务器
app.get('/contactlist/:id', function (req, res) {
var id = req.params.id;
console.log(id);
connection.query('SELECT * FROM contactlist WHERE id = ' + id, function (error, results, fields) {
console.log(results);
res.json(results);
});
});
的index.html:
<div class="input-field col s4">
<input id="name" type="text" class="form" ng-model="contact.name">
<label for="name">Nom</label>
{{contact.name}}
</div>
<div class="input-field col s4">
<input id="email" type="text" class="form" ng-model="contact.email">
<label for="email">Email</label>
</div>
<div class="input-field col s4">
<input id="number" type="text" class="form" ng-model="contact.number">
<label for="number">Numéro</label>
</div>
Chrome收到的回复: response from chrome object
答案 0 :(得分:1)
您的响应包含带对象的数据数组。 data [0]有联系对象。
$http.get('/contactlist/' + id).then(function(response) {
$scope.contact = response.data[0];
});
答案 1 :(得分:0)
使用$ http服务时,then
函数中的已解析对象包含完整响应。响应对象不仅包含您的数据,还包含statusCode等属性以及发送请求时使用的配置。所以你要做的是:
$http.get('/contactlist/' + id).then(function(response) {
console.log(response);
$scope.contact = response.data;
});
请注意使用response.data
评价而不仅仅是response
。另外,请注意,在服务器端,您可能只想返回第一个结果 - 而不是结果数组:
app.get('/contactlist/:id', function (req, res) {
var id = req.params.id;
console.log(id);
connection.query('SELECT * FROM contactlist WHERE id = ' + id, function (error, results, fields) {
console.log(results);
res.json(results[0]);
});
});
答案 2 :(得分:0)
由于您收到了联系人列表,我建议您这样做:
$http.get('/contactlist/' + id).then(function(response) {
console.log(response);
$scope.contacts = response.data; //note the 's'
});
并在html中
<div ng-repeat="contact in contacts">
<div class="input-field col s4">
<input id="name" type="text" class="form" ng-model="contact.name">
<label for="name">Nom</label>
{{contact.name}}
</div>
<div class="input-field col s4">
<input id="email" type="text" class="form" ng-model="contact.email">
<label for="email">Email</label>
</div>
<div class="input-field col s4">
<input id="number" type="text" class="form" ng-model="contact.number">
<label for="number">Numéro</label>
</div>
</div>