ng-repeat问题

时间:2016-12-24 05:26:35

标签: angularjs angularjs-ng-repeat

enter image description here 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

4 个答案:

答案 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正在使用数组中的一个元素。看看这里

plunker

答案 3 :(得分:0)

你只需检查响应是对象还是数组,这可能对你有所帮助

 if(data.platform.record[0] == undefined){
    $scope.items=[data.platform.record]; 
}else{
    $scope.items=data.platform.record; 
}