var responsePromisecom = $ http.get(“restapi calling”);
responsePromisecom.success(function(data){
的console.log(数据);
$ scope.items = data.platform.record;
});
responsePromisecom.error(function(data,status,headers,config){
警报(“ajax失败”);
});
};
我正在使用@Input
进行REST API调用。我想在我的页面中使用$http.get()
显示响应数据。当数据是一个数组时(意味着响应数据包含多个对象),它可以正常工作。但是,当响应数据只包含一条记录时,ng-repeat
无效。我不想使用ng-repeat
。有没有办法这样做?如果项目返回1条记录,则$watch
不会重复多次而没有任何数据。如果项目返回2条记录ng-repeat
正常工作。
ng-repeat
答案 0 :(得分:1)
检查阵列的长度并执行此操作,
<div ng-repeat="item in items ng-if="items.length > 1">
{{item.id}}
</div>
<div ng-repeat="item in items[0] ng-if="items.length == 1">
{{item.id}}
</div>
修改强>
var responsePromisecom = $http.get("restapi calling");
responsePromisecom.success(function(data) {
console.log(data);
if(data.platform.record.length == 1){
$scope.items.push(data.platform.record);
}
else
{
$scope.items = data.platform.record;
}
});
responsePromisecom.error(function(data, status, headers, config) {
alert("ajax failed");
});
};
答案 1 :(得分:0)
ng-repeat
不是根本原因,我想当你调用rest api时,当结果只是一个项目时,它会返回一个不是数组的对象。因此,您需要编辑代码以在返回项目时返回数组。
答案 2 :(得分:0)
ng-repeat
正在使用数组中的一个元素。看看这里
答案 3 :(得分:0)
你只需检查响应是对象还是数组,这可能对你有所帮助
if(data.platform.record[0] == undefined){
$scope.items=[data.platform.record];
}else{
$scope.items=data.platform.record;
}