AngularJS增加id属性的值

时间:2015-08-03 09:04:41

标签: javascript angularjs increment

我有一些看起来像这样的HTML:

<tr ng-repeat="x in y">
    <td>
         <div ng-attr-id="{{getId()}}"></div>
    </td>
    <td>
         <div ng-attr-id="{{getId()}}"></div>
    </td>
    <td>
         <div ng-attr-id="{{getId()}}"></div>
    </td>
</tr>

我希望第一个<td>元素的ID从1开始,然后为每个<td>元素增加一个。

通过在控制器中执行:

$scope.getId = function () {
    counter++;
    return counter;
}

我得到了

  

达到10 $ digest()次迭代。中止!

2 个答案:

答案 0 :(得分:1)

您可以使用$index

<tr ng-repeat="x in y track by $index">
  <td>
    <div ng-attr-id="{{$index + 1}}"></div>
  </td>
</tr>

对于嵌套循环,您可以定义新的轨道值并与$index结合使用,或者对于静态的三个元素,您可以编写此代码:

<tr ng-repeat="x in y track by $index">
  <td>
    <div ng-attr-id="{{$index*3 + 1}}"></div>
  </td>
  <td>
    <div ng-attr-id="{{$index*3 + 2}}"></div>
  </td>
  <td>
    <div ng-attr-id="{{$index*3 + 3}}"></div>
  </td>
</tr>

答案 1 :(得分:1)

您可以使用 mWebView = (WebView) findViewById(R.id.activity_my_webview); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setAllowFileAccess(true); webSettings.setDomStorageEnabled(true); webSettings.setUseWideViewPort(true); webSettings.setBuiltInZoomControls(true); webSettings.setLoadsImagesAutomatically(true); webSettings.setPluginState(PluginState.ON); webSettings.setPluginState(WebSettings.PluginState.ON); // webSettings.setPluginsEnabled(true); mWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null); 指令的$index变量。

  

ngRepeat:重复元素的迭代器偏移量(0..length-1)

     

ngRepeat

所以,你可以这样做:

$index

我们使用<div ng-attr-id="{{$index + 1}}"></div> 从1开始