【发布时间】:2015-06-29 04:13:15
【问题描述】:
http post返回的json响应数据如下:
{"ResponseData":[["AUSTRALIA","VICTORIA","MELBOURNE"],["AUSTRALIA ","NEW SOUTH WALES","SYDNEY"]]}
控制器代码:
app.controller('tableController', function ($scope)
{
$scope.customerTable = [];
$scope.getTable = function ()
{
$http.get('getTable.do').success(function (data)
{
$scope.customerTable = data;
});
};
});
这是我的 div:
<div ng-controller="tableController">
<p> Click <a ng-click="getTable()">here</a> to load data.</p>
<table>
<tr>
<th>COUNTRIES</th>
<th>STATES</th>
<th>CITIES</th>
</tr>
<tr ng-repeat="data in customerTable">
<td>{{data[0]}}</td>
<td>{{data[1]}}</td>
<td>{{data[2]}}</td>
</tr>
</table>
</div>
当我使用 ng-repeat 加载数据时,它只是将其显示为 {{data.country}} 而不是实际值。没有服务器端问题,因为我收到了回复,但无法理解为什么表格中没有显示数据?
【问题讨论】:
-
你在使用其他框架吗?例如 Symfony,默认情况下使用相同的括号表示表达式 ->
{{expr}}。 -
不,我没有使用其他框架
-
您正在尝试绘制
data.country、data.state和data.city,但您不处理具有这些属性的任何类型的对象(例如,obj = { country: 'Australia',州:'维多利亚',城市:'墨尔本'})。你只有一个数组数组。也许您应该考虑重新设计响应,这样您就不需要遍历数组数组,然后按此顺序分配内部数组中的每个索引,即country、state和city。跨度> -
你的控制器函数没有
$http作为参数。 -
@kittu 你确实改变了你的视图结构,但你没有改变你的控制器(至少在问题中没有)。正如下面两个答案所指出的,您需要将 ResponseData 数组添加到您的 customerTable 中——而不是返回的整个对象。
标签: angularjs