【发布时间】:2016-06-10 17:59:02
【问题描述】:
我有一个从服务器检索到的对象数组。查询有效,但是当我在 html 视图中执行 ng-repeat 时,它不起作用,它不显示任何内容。为什么?
这是js代码:
$scope.companyList = [];
$scope.getCompanyList = function() {
$scope.companyList.length = 0;
CompanyListSrv.getCompanyListDetail(function (companyListDetail) {
if (companyListDetail) {
$scope.companyList = companyListDetail;
}
});
};
$scope.getCompanyList();
HTML 代码:
<tr ng-repeat="company in companyList">
<td>{{ company.name }}</td>
<td>{{ company.email }}</td>
</tr>
这是 companyListDetail 数组(来自服务器的响应):
companyListDetail: Array[2]
0: Object
1: Object
length: 2
这是0: Object:
email: "text@text.com"
name: "Compant 2"
在控制台中我没有错误,在浏览器的 html 页面中我有这个:
<!-- ngRepeat: company in companyList -->
【问题讨论】:
-
看不到明显错误。尝试检查下一个: 1.你如何使用异步调用?使用 $http?尝试把 $timeout(function(){$scope.companyList = companyListDetail;}) ; 2. 把 console.log(companyListDetail) 放在 function (companyListDetail) { 之后
-
在调用$scope.getCompanyList()函数后放入console.log($scope.companyList),查看数据是否可用。问题可能是数据(companyList)不可用于 ng-repeat
-
通过
console.log($scope.companyList)检查$scope.companyList = companyListDetail;,因为它是否具有相同的对象数组。 -
@Vitalii 我可以看到这个日志:[Object, Object] 0: Object 1: Object
-
我已经解决了写'$scope.$apply()'
标签: javascript arrays angularjs angularjs-ng-repeat