2017-07-10 6 views
0

受信したデータを3つの入力に入れたいと思います。私はノードサーバーからjson応答を受け取り、コントローラーは応答を受け取って3つの入力に配置する必要があります。 は私が応答を受信しますが、私は入力に配置することはできません入力に応答を配置する方法angularjs

コントローラー:

$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> 

応答はクロームで受信された: response from chrome object

+0

では? –

+2

'response'はあなたがログに記録するときのように見えますか?おそらく '$ scope.contact = response.data'であるべきです。 – tymeJV

+1

$ scope.contact = responseを変更してください。 〜$ scope.contact = response.data; – Vivz

答えて

0

$ HTTPサービス、then機能で解決されたオブジェクトを使用して、完全な応答が含まれています。レスポンスオブジェクトにはデータだけでなく、statusCodeやリクエストの送信時に使用される設定などのプロパティも含まれます。それでは、あなたが代わりにやってみたいことはこれです:

$http.get('/contactlist/' + id).then(function(response) { 
    console.log(response); 
    $scope.contact = response.data; 
}); 

はちょうどresponseよりresponse.data評価者の使用に注意してください。また、あなたはおそらく唯一の最初の結果を返すようにしたいと思い、そのサーバーサイドに注意してください - 結果のない配列:

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]); 
    }); 
}); 
+0

ありがとうございますこのソリューションもありがとう –

+1

これは私が実際に使用している解決策であり、データオブジェクトの受信がたくさんありがとうと理解してくれた理由で受け入れます。 –

+0

問題ありません。それが助けてくれてうれしい。 –

1

あなたの応答は、オブジェクトとデータ配列を持っています。データ[0]には連絡先オブジェクトがあります。

$http.get('/contactlist/' + id).then(function(response) { 
    $scope.contact = response.data[0]; 
}); 
+0

ニース、ありがとう、問題解決済み! あなたのすべての応答のverymuchありがとうございました –

+0

はい私は2分待つ必要があります –

+0

おかげでもう一度 –

0

あなたが連絡先の一覧が表示されますので、私はあなたがこれを行うだろうことをお勧めしたい:はconsole.logプリントを何

$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> 
+0

私はこれのための指示があります:ng-repeat = "連絡先の連絡先" 原因私は繰り返し入力を必要としません。 これを繰り返します:{{contact.name}}&.email&.number –

関連する問題