Angular 4:动态设置局部变量#

时间:2017-12-21 23:42:27

标签: angular

有没有办法动态设置#id,即angular用来构造@ViewChild元素引用的HTML属性?

特殊需求:我有以下模板,通过迭代* ngFor创建,我想在迭代上分配Angular id。

<ul>
   <li *ngFor="let link of links">
  </li>
</ul>

在解释之后,最终得到类似的东西:

<ul>
  <li #link1>
   </li>
  <li #link2>
   </li>
 </ul>

现在我知道了许多其他获取元素的方法,我可以将#分配给ul元素等,但是想知道是否有办法在ngFor上进行。

在看到答案并尝试组合后编辑:

似乎没有办法为* ngFor生成的单个元素分配不同的局部变量标识符。 您可以获得所有这些,如接受的答案建议,或者只是获取父元素,并从那里找到您的方式。

3 个答案:

答案 0 :(得分:16)

尽管常规变量和#之间看似相似,但可以将多个元素分配给单个本地模板引用变量:

<ul>
   <li *ngFor="let link of links" #linkRef></li>
</ul>

可以通过以下方式获得:

@ViewChildren('linkRef') linkRefs;

答案 1 :(得分:0)

你可以使用这样的代码:

<ul>
    <li *ngFor="let item of items;let i = index;" #itemRef{{i}}>{{item.xyz}}</li>
</ul>

看看这个问题: enter link description here

答案 2 :(得分:-5)

您可以使用索引。

block = gdb.block_for_pc(0x405ece)
while block and not block.function:
  block = block.superblock

print block.function.print_name