2017-09-25 16 views
0

私はWSからデータを読み込み、anglejのスコープ変数にアタッチしようとしています。anglejsを使用してWebサービスからデータを読み取る

コントローラのAPIは、次のようになります。

public class ContactsController : ApiController 
{ 
    // GET: api/Contacts 
    public List<Contact> Get() 
    { 
     List<Contact> cl = new List<Contact>(); 
     SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConStr"].ConnectionString); 
     SqlCommand cmd = new SqlCommand(@"SELECT * FROM Contacts", con); 

     try 
     { 
      con.Open(); 
      SqlDataReader rdr = cmd.ExecuteReader(); 
      while (rdr.Read()) 
      { 
       Contact c = new Contact(); 
       c.Name = rdr["Name"].ToString(); 
       c.Phone = (int)rdr["Phone"]; 
       c.Mail = rdr["Mail"].ToString(); 
       c.City = rdr["City"].ToString(); 
       c.Address = rdr["Address"].ToString(); 
       c.Image = rdr["Image"].ToString(); 
       cl.Add(c); 
      } 
      rdr.Close(); 
     } 
     catch (Exception e) 
     { 

     } 
     finally 
     { 
      con.Close(); 
     } 
     return cl; 
    } 

HTMLコントローラは次のようになります。

controller: function ($scope, $http) { 
          var url = "http://example.com" 
          $http.get(url + "/api/Contacts").then(function (res) { 
           $scope.contacts = res.data; 
          }, function (err) { alert(err);}); 

しか含んでいないためにres.dataようです。 ご協力いただければ幸いです。あなただけのList<Contact>オブジェクトを返してきた

+0

あなたはPOSTMAN(クロームプラグイン)によるクロスチェックのAPIレスポンスと見ることはできます任意の結果を返して?その場合、そのAPIの問題ではない。 – fiberair

+0

@Jadenkunそれは質問に答えることはできませんが、私はかなりエラーがHTMLコントローラではないと確信しています。 resがres.dataの代わりにすべてのデータを直接持っているかどうかを確認するだけです。それも空であれば、誰かがAPIコントローラーで変更が必要なものを返すべきです。 –

答えて

0

は、あなたが代わりに直接 response.dataresponse使用することができ、ありがとうございます。

だけ

$scope.contacts = res; 

return cl;をチェックする必要があります代わりに、あなたのこのコードを試し、応答がデータを持っていない場合

関連する問題