ng-repeat ng-init变量不同步。

时间:2015-05-12 16:19:36

标签: angularjs angularjs-ng-repeat

我有一个ng-repeat方法列出一些东西。有一个嵌套的ng-repeat所以我使用ng-init来跟踪我的外部$ index。

public class Node {

public int Id { get; set; }

/** Properties omitted for sake of brevity **/
private int _parentNodeId;
public int ParentNodeId { get {return _parentNodeId;}
set
{
    _parentNodeId = value;
    ParentNode = GetParentNodePropertyValues(_parentNodeId);
} 
}
public Node ParentNode { get; private set; }

}

大部分时间都可以正常使用。但有些情况下电流不同步。如果我设置了某个过滤器,我最终会得到12个产品。当我每行并排掉$ index和current时,我得到以下内容。

      <div class="row" ng-repeat="product in products" ng-if="$index % 2 == 0" ng-init="current = $index">

        <div class="col col-50" ng-repeat="idx in [0,1]" ng-if="(current + idx) < products.length">
          <div class="item-product" ui-sref="^.product({productId: products[current + idx].Id})">

              <div ng-if="products[current + idx].image">
                <img class="full-image" ng-src="{{ products[current + idx].image }}">
              </div>

              <p class="ellipsis"><b>{{ current + idx }}  {{ products[current + idx].Name }}</b><br/>

              <span ng-if="products[current + idx].Description" class="ellipsis">{{ products[current + idx].Description }}</span></p>

          </div>
        </div>
      </div>

出于某种原因,我的当前开始跳跃6.还有其他人看过这个吗?

1 个答案:

答案 0 :(得分:1)

考虑按索引跟踪ng-repeat以简化操作:

<div ng-repeat="product in products track by $index"></div>