Angularjs 使用带$index的angular ng repeat无法反映数据
当数据来自数据库时,DOM没有得到反映。 当页面加载时,我在productList数组中有一些数据,并且在应用了一些过滤器(比如价格应该在500-1000之间)之后,请求转到API,更新的productList来自响应。但这些产品并没有在页面上得到反映 我将数据发送到一个指令中,该指令显示productList与ng repeat的单独产品,我的代码如下:Angularjs 使用带$index的angular ng repeat无法反映数据,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,当数据来自数据库时,DOM没有得到反映。 当页面加载时,我在productList数组中有一些数据,并且在应用了一些过滤器(比如价格应该在500-1000之间)之后,请求转到API,更新的productList来自响应。但这些产品并没有在页面上得到反映 我将数据发送到一个指令中,该指令显示productList与ng repeat的单独产品,我的代码如下: <div ng-repeat="product in productList track by $index"> 我了解
<div ng-repeat="product in productList track by $index">
我了解到,当我们从范围中传递数据时,$index会导致问题。因此,数据丢失和DOM无法更新 我在ng中使用product.id作为密钥找到了解决方案,如下所示:
<div ng-repeat="product in productList track by product.id">
<div ng-repeat="product in productList track by (product.id + $index)">
但当多个产品具有相同id时,上述代码再次失败并抛出以下错误,因为如果一个产品具有相同id,ng repeat会将这些产品视为相同:
angular.js:11706错误:[ngRepeat:dupes]中继器中不允许重复。使用“跟踪依据”表达式指定唯一关键点。中继器
所以最后我通过制作ng repeat的动态唯一键解决了这个问题,如下所示:
<div ng-repeat="product in productList track by product.id">
<div ng-repeat="product in productList track by (product.id + $index)">
只要在div中添加
ng
<div ng-if="productList" ng-repeat="product in productList track by $index">
您需要显示更多的代码。如何检索数据,以及如何将结果存储在DOM中?如果将其放在上面的div:productList:{{{productList | json}}
之前,您会看到什么?使用此解决方案仍然无法反映数据。