从angularjs生成标记ID

时间:2014-08-07 23:19:08

标签: javascript html angularjs

  

我需要创建一个html结构,如下所示:

<ul>
<li id="r1_1">Root node 1
    <ul>
      <li id="child_node_1">Child node 1</li>
      <li id="child_node_2">Child node 2</li>
      <li id="child_node_3">Child node 3</li>
    </ul>
  </li>
  <li id="r1_4">Root node 2
    <ul>
      <li id="child_node_4">Child node 4</li>
      <li id="child_node_5">Child node 5</li>
    </ul></li>
</ul>   </div>
     

我的问题是我无法生成id索引。我需要去做   这使用angularjs。有人可以帮忙吗?我对angularjs很新。

1 个答案:

答案 0 :(得分:-1)

正如tymeJV所提到的,你可以使用ng-repeat和$ index来完成它。

这是一个带有示例的工作人员: http://plnkr.co/edit/S4H08rHgpQlGhY18VkNP?p=preview

<ul>
  <li ng-repeat="root in rootNodes" id="someprefix_{{calculateRootId($index)}}">
    {{root.node}} calculated id: someprefix_{{calculateRootId($index)}}
    <ul>
      <li ng-repeat="item in root.items" id="someprefix_{{$index +1}}">Child node {{$index + 1}}</li>
    </ul>
  </li>
</ul>

编辑:更新了plunkr以满足您的要求,请注意使用辅助函数来计算id是非常有用的,但是为您的数组项(根和子)提供先前计算的Id变量会很好在您的控制器上,只需绑定它。

上述解决方案有效,但我不推荐。我喜欢尽可能地将逻辑与视图分开,这是最好的做法。话虽如此,请查看另一个示例:http://plnkr.co/edit/QsnZFlCx347nnSnkFj7W?p=preview

这里id生成的逻辑全部在控制器中,因此视图可以直接绑定到计算的id,并且还可以在必要时更容易地更改或自定义逻辑:

<ul>
  <li ng-repeat="root in rootNodes" id="{{root.id}}">
    {{root.name}} id: {{root.id}}
    <ul>
      <li ng-repeat="item in root.items" id="item.id">{{item.name}} id: {{item.id}}</li>
    </ul>
  </li>
</ul>

希望有所帮助。