我目前正通过ng-repeat向DOM添加“行”。 (AngularJS 1.5)
我在$scope
内通过数组进行简单的ng-repeat。我已经多次这样做了,我从未遇到过问题。
这是我的ng-repeat:
<li ng-repeat="row in panelRows track by $index" x-sb-panel-row row-data="row" class="row"></li>
在我的界面中,我添加了两个相同的对象,当然,通过添加track-by,我希望它们可以单独处理。
这是我在控制台中打印的对象,来自我的指令x-sb-panel-row
,通过row-data="row"
(使用隔离范围和通过属性row-data
的双向绑定)。
第1行:Object {name: "Test carousel (not really a carousel)", subText: "3 x 33%", columns: Array[3], $$hashKey: "object:68"}
第2行:Object {name: "Test carousel (not really a carousel)", subText: "3 x 33%", columns: Array[3], $$hashKey: "object:68"}
我的问题是$$hashKey: "object:68"
,显然使用track-by
应该删除它,但它不会,并且它为我的对象提供相同的值。我该如何解决这个问题?
答案 0 :(得分:1)
我发现了自己的问题。原来我pushing
是$scope.panelRows
的一个新行,但是我推动的对象是一个已经被angularjs解析的对象,它有自己的$$ hashKey。
在:
$scope.panelRows.push(col)
后:
$scope.panelRows.push(angular.copy(col))