【发布时间】:2014-08-12 08:47:51
【问题描述】:
我有下表:
<div data-ng-app="myApp">
<div data-ng-controller="MyCtrl">
<form>
<table>
<tr>
<td><b>ID</b></td>
<td><b>Name</b></td>
<td><b>Surname</b></td>
<td><b>House</b></td>
<td><b>Address</b></td>
<td><b>Locality</b></td>
<td><b>Contact1</b></td>
<td><b>Contact2</b></td>
<td><b>Contact3</b></td>
<td><b>Reply</b></td>
</tr>
<tr><td></td></tr>
<tr ng-repeat="telesale in telesales">
<td>{{telesale.ID}}</td>
<td>{{telesale.Name}}</td>
<td>{{telesale.Surname}}</td>
<td>{{telesale.House}}</td>
<td>{{telesale.Address}}</td>
<td>{{telesale.Locality}}</td>
<td>{{telesale.Contact1}}</td>
<td>{{telesale.Contact2}}</td>
<td>{{telesale.Contact3}}</td>
<td>{{telesale.Reply}}</td>
</tr>
</table>
</form>
</div>
</div>
控制器:
<script type="text/javascript">
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', ['$scope', '$http', function ($scope, $http) {
GetPersons();
function GetPersons() {
$http({
method: 'GET',
url: '/api/data'
}).
success(function (data) {
if (data != null || data != 'undefined') {
console.log(data);
$scope.telesales = data;
}
})
.error(function (error) {
$window.alert("Unable to retrieve people" + error.message);
});
}
} ]);
正在从 api 控制器检索数据,该控制器返回 40 个对象的列表,但表中仅显示第一个对象。为什么会发生这种情况?
从 api 检索到的一些数据的屏幕截图(数据因隐私而被划掉)
看起来好像第二个(以及其余对象)作为位置传递,这是另一个表的外键
API 代码:
public HttpResponseMessage GetPeople()
{
List<CommonLayer.Telesales> list = new BusinessLayer.Telesales().getUserSession(User.Identity.Name);
//List<CommonLayer.Localities> list = new BusinessLayer.Localities().getAllLocalities();
if (list.Count > 1)
{
return new HttpResponseMessage()
{
Content = new StringContent(JArray.FromObject(list).ToString(), Encoding.UTF8, "application/json")
};
}
else
{
return null;
}
}
【问题讨论】:
-
你能提供一个 plunkr/jsfiddle 吗?
-
我猜你的问题与.net web-api有关,而不是angularjs
-
@rikket 你在 api 中扩展你的查询吗?看起来,电话销售在您的地区来回扩展。所以你的电话销售有重复的条目。
-
您的表行周围没有迭代器来检索多个结果。您是否在输出中将每个数据行显示为单独的表格?
-
@GermannArlington 你是什么意思?当我尝试传递一个只有 2 列且没有外键的普通列表时,它在没有迭代器的情况下一切正常
标签: json angularjs asp.net-web-api2