我正在玩Angular,我偶然发现了另一个问题。我正在尝试从外部js文件中提取数据,但收到"错误:ngRepeat:dupes"错误。
<div class="productRow" ng-repeat="prod in productsList">
因此,按照错误消息中提供的方向,我添加了"跟踪方式">
<div class="productRow" ng-repeat="prod in productsList track by $index">
我的数据出现了,但现在它只多次重复一个项目。
请查看此链接以获取完整代码。
我做错了什么吗?我的意思是我显然是,但我做错了什么?
谢谢!
Angular 不是问题,它显示您提供给它的数组。
在脚本中.js如果您在生成后添加console.log($scope.productsList);
,您将明白我的意思。
您的问题在此行下
if (productItems[ii] == products[jj].id)
您没有重置thisProduct
在下面添加这个thisProduct = {};
请看这里 http://plnkr.co/edit/bj0NWJnjgNUbHcFX1Wvw?p=preview
for (var ii = 0; ii < productItems.length; ii++) {
for (var jj = 0; jj < products.length; jj++) {
if (productItems[ii] == products[jj].id) {
//add this line to your code
thisProduct = {};
thisProduct.prodIdxId = products[jj].id;
thisProduct.skuId = products[jj].skuId;
thisProduct.title = products[jj].title;
thisProduct.size = products[jj].size;
thisProduct.price = products[jj].price;
thisProduct.discount_price = products[jj].disc_price;
thisProduct.discount_msg = products[jj].discount_msg;
thisProduct.ship_save = products[jj].ship_save;
thisProduct.free_shipping = products[jj].free_shipping;
thisProduct.weight = products[jj].weight;
thisProduct.rating = products[jj].rating;
thisProduct.img = products[jj].img;
thisProduct.out_of_stock = products[jj].oos;
thisProduct.qty = products[jj].qty;
console.log(thisProduct);
$scope.productsList.push(thisProduct);
console.log($scope.productsList);
}
}
}
因为你的productsList
包含相同的对象。
[{"prodIdxId":207,"skuId":477072,"title":"Allergy Liquid Cherry Flavored","size":"4 OZ","price":5.99,"discount_price":0,"discount_msg":"","ship_save":1,"free_shipping":1,"weight":"0.06 LBS","rating":0,"img":"5042813846.jpg","out_of_stock":0,"qty":3},{"prodIdxId":207,"skuId":477072,"title":"Allergy Liquid Cherry Flavored","size":"4 OZ","price":5.99,"discount_price":0,"discount_msg":"","ship_save":1,"free_shipping":1,"weight":"0.06 LBS","rating":0,"img":"5042813846.jpg","out_of_stock":0,"qty":3},{"prodIdxId":207,"skuId":477072,"title":"Allergy Liquid Cherry Flavored","size":"4 OZ","price":5.99,"discount_price":0,"discount_msg":"","ship_save":1,"free_shipping":1,"weight":"0.06 LBS","rating":0,"img":"5042813846.jpg","out_of_stock":0,"qty":3},{"prodIdxId":207,"skuId":477072,"title":"Allergy Liquid Cherry Flavored","size":"4 OZ","price":5.99,"discount_price":0,"discount_msg":"","ship_save":1,"free_shipping":1,"weight":"0.06 LBS","rating":0,"img":"5042813846.jpg","out_of_stock":0,"qty":3},{"prodIdxId":207,"skuId":477072,"title":"Allergy Liquid Cherry Flavored","size":"4 OZ","price":5.99,"discount_price":0,"discount_msg":"","ship_save":1,"free_shipping":1,"weight":"0.06 LBS","rating":0,"img":"5042813846.jpg","out_of_stock":0,"qty":3},{"prodIdxId":207,"skuId":477072,"title":"Allergy Liquid Cherry Flavored","size":"4 OZ","price":5.99,"discount_price":0,"discount_msg":"","ship_save":1,"free_shipping":1,"weight":"0.06 LBS","rating":0,"img":"5042813846.jpg","out_of_stock":0,"qty":3},{"prodIdxId":207,"skuId":477072,"title":"Allergy Liquid Cherry Flavored","size":"4 OZ","price":5.99,"discount_price":0,"discount_msg":"","ship_save":1,"free_shipping":1,"weight":"0.06 LBS","rating":0,"img":"5042813846.jpg","out_of_stock":0,"qty":3},{"prodIdxId":207,"skuId":477072,"title":"Allergy Liquid Cherry Flavored","size":"4 OZ","price":5.99,"discount_price":0,"discount_msg":"","ship_save":1,"free_shipping":1,"weight":"0.06 LBS","rating":0,"img":"5042813846.jpg","out_of_stock":0,"qty":3}]
{"prodIdxId":207,"skuId":477072,"title":"Allergy Liquid Cherry Flavored","size":"4 OZ","price":5.99,"discount_price":0,"discount_msg":"","ship_save":1,"free_shipping":1,"weight":"0.06 LBS","rating":0,"img":"5042813846.jpg","out_of_stock":0,"qty":3}]