Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从angularjs生成标记id_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 从angularjs生成标记id

Javascript 从angularjs生成标记id,javascript,html,angularjs,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>

我需要创建一个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很陌生


正如tymeJV所提到的,您可以使用ng repeat和$index来完成这项工作

下面是一个正在工作的plunker,其示例如下:

编辑:更新了plunkr以满足您的需求,请注意,使用辅助函数计算id非常有用,但最好为数组项根和子项提供一个以前在控制器上计算的id变量,并简单地绑定到它

上述解决方案可行,但我不推荐它。我喜欢尽可能地将逻辑从视图中分离出来,这是最好的做法。话虽如此,看看另一个例子:

在这里,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>

希望能有所帮助。

使用ng repeat和$index-如果没有数据结构,这很难帮助你。也许你应该问问自己为什么需要生成这些ID…我使用的是第三方JQuery插件,需要这种结构:对不起,伙计们,我的坏!我纠正了重复的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>