2016-12-02 63 views
-1

我有这样的代码AngularJS服务里面:JSON迭代工作中途

var products = []; 

$http.get('http://www.......it/app/parse.php'). 
    success(function(data, status, headers, config) { 
     products.push(data); 
     console.log(products); 
    }). 
    error(function(data, status, headers, config) { 
     console.error("Error JSON") 
     console.log(data); 
}); 

return { 
    all: function() { 
     return products; 
    }, 
    remove: function(chat) { 
     products.splice(products.indexOf(chat), 1); 
    }, 
    get: function(chatId) { 
     for (var i = 0; i < products.length; i++) { 
      if (products[i].id === parseInt(chatId)) { 
       return products[i]; 
      } 
     } 
     return null; 
    } 
}; 

的HTML由JSON日志和NG-重复。

<pre>{{shoesItems.items | json}}</pre> 
<div class="row" ng-repeat="item in shoesItems.items"> 

这是结果:

enter image description here

虽然如果我改变products.push(data);products.push(data[0]);我看到的第一个图像:

enter image description here

我该如何告诉他们所有?

回答

0

由于对这个答案的评论说,这是行不通的,因为那时我们失去了参考原来的产品阵列。试试这个:

products.push.apply(products, data)

基本上,它增加了对数据的产品阵列中的所有元素。

+0

对,这是因为角度不会在每个摘要循环中调用'.all()',因此如果更改产品参考,则会丢失。然后调用'.push()',但循环遍历所有数据。或者有一种方法可以在不改变ref的情况下用'products.push.apply(products,data)'来进行连接 – olivarra1

1

你的第一个结果是数组的数组,尝试访问的第一个对象就是这样,

<pre>{{shoesItems[0].items | json}}</pre> 
<div class="row" ng-repeat="item in shoesItems[0].items">