我正在学习angularjs,我很想从WebApi获取Object列表。我已经尝试用$ http来做它并且它工作正常:
// in controller
var listC = 'http://localhost:12345/api/WebApiTest/ContList';
$http({
method: 'GET', url: listC
}).success(function (ContactsList) {
$scope.contacts= ContactsList;
}).error(function () {
alert("Error in List");
});
但我不能用$ resource做同样的事情,以后我做了什么: 表:
<tr ng-repeat="progetto in progetti | filter:progSearch | orderBy:orderByField:reverseSort">
<td style="padding:10px;"><img src="images/user-2.png" href="#" width="25" ng-click="GetProgById(progetto.ID_Progetto)" data-toggle="modal" data-target="#progetto-modal" alt="Vista" /></td>
<td style="padding:10px;"><img src="images/edit-user.png" href="#" width="25" ng-click="GetProgById(progetto.ID_Progetto)" data-toggle="modal" data-target="#progetto-update-modal" alt="Modifica" /></td>
<td style="padding:10px;">{{progetto.NomeProgetto}}</td>
<td style="padding:10px;">{{progetto.Descrizione}}</td>
<td style="padding:10px;">{{progetto.NomeAreaRicerca}}</td>
<td style="padding:10px;">{{progetto.Responsabile}}</td>
<td style="padding:10px;"><img src="images/delete-user.png" href="#" width="25" ng-click="GetProgById(progetto.ID_Progetto)" data-toggle="modal" data-target="#modalEliminaProgetto" alt="Elimina" /></td>
</tr>
模块:
var app = angular.module('myApp', ['ngResource'])
.factory('progettiService', function ($resource) {
return $resource('http://localhost:12345/api/WebApiTest/ProgettiList');
// ProgettiList is specified below
});
控制器:
app.controller('progCtrl', function ($scope, progettiService) {
$scope.progetti = progettiService.query();
});
api中的“ProgettiList”:
[HttpGet]
public IHttpActionResult ProgettiList()
{
var listProg = logic.ProgettiList();
return Ok(listProg);
}
逻辑中的......
public List<ProgettoDAO> ProgettiList()
{
return progDAL.ProgettiListDAL();
}
并在DAL中:
public List<ProgettoDAO> ProgettiListDAL()
{
List<ProgettoDAO> list = new List<ProgettoDAO>();
string SC = ConfigurationManager.ConnectionStrings["Connection"].ToString();
SqlConnection conn = new SqlConnection(SC);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "SP_Progetti_List";
cmd.Parameters.AddWithValue("@ID_Progetto", null);
try
{
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
ProgettoDAO progetto = new ProgettoDAO();
if (reader["ID_Progetto"] != System.DBNull.Value)
{
progetto.ID_Progetto = Convert.ToInt16(reader["ID_Progetto"]);
}
if (reader["NomeProgetto"] != System.DBNull.Value)
{
progetto.NomeProgetto = Convert.ToString(reader["NomeProgetto"]);
}
if (reader["Responsabile"] != System.DBNull.Value)
{
progetto.Responsabile = Convert.ToString(reader["Responsabile"]);
}
if (reader["Descrizione"] != System.DBNull.Value)
{
progetto.Descrizione = Convert.ToString(reader["Descrizione"]);
}
if (reader["ID_AreaRicerca"] != System.DBNull.Value)
{
progetto.ID_AreaRicerca = Convert.ToInt16(reader["ID_AreaRicerca"]);
}
if (reader["NomeAreaRicerca"] != System.DBNull.Value)
{
progetto.NomeAreaRicerca = Convert.ToString(reader["NomeAreaRicerca"]);
}
list.Add(progetto);
}
conn.Close();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
conn.Close();
conn.Dispose();
}
return list;
}
表格应在页面加载后立即填写。但是,该方法返回一个列表Count = 0;