Increment/decrement 转化为 angular 表达式(id 生成)

Increment/decrement into angular expression (id generation)

我想像这样在嵌套的 ng-repeats 中增加:

<div ng-repeat="arr in extension.providers">
     <div id="pos{{++providerId}}"
          ng-repeat="provider in arr track by provider.id">
     </div>
</div>

哪里

$scope.providerId = 0;

但是我得到错误

Error: [$parse:syntax] Syntax Error: Token '+' not a primary expression at column 11 of the expression ['pos' + (providerId++)] starting at [+providerId)].

我尝试在函数中写入增量,例如 answer,但得到的 ID 类似于 "pos398"、"pos400" 等

如何在我的网页上生成 ID?

如果您使用 ng-repeat 生成我假设的 div 元素,您可以简单地使用循环的 $index 来生成 ID。

在你的例子中你嵌套了 ng-repeat,所以如果你想访问父 $index:

<div ng-repeat="arr in extension.providers">
  <div ng-repeat="provider in arr track by provider.id" id="pos{{$parent.$index}}">
  </div>
</div>

或者您可以简单地使用 $index,正如这个 plunkr 所演示的:

http://plnkr.co/edit/d8YPSHqLYkPtqovGpxbv?p=preview

我的问题的答案:

<div ng-repeat="arr in extension.providers" ng-init="topIndex = $index">
     <div id="pos{{topIndex.toString() + $index.toString()}}"
          ng-repeat="provider in arr track by provider.id">
     </div>
</div>

因此,我得到了唯一的 ID,例如 pos00、pos01、pos10、p​​os11....

感谢 Chrillewoodz and Beyers 的帮助。