递增/递减到角度表达式(id生成)

时间:2015-09-11 13:00:28

标签: javascript angularjs auto-increment

我想在嵌套的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?

2 个答案:

答案 0 :(得分:3)

如果您使用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

答案 1 :(得分:0)

我的问题的答案:

<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>

结果,我得到了像pos00,po​​s01,pos10,pos11 ......这样的唯一身份证。

感谢ChrillewoodzBeyers的帮助。