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

amy*_*374 11 angular

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

具体需要:我有以下模板,通过迭代*ngFor创建,我想在迭代上分配Angular id.

<ul>
   <li *ngFor="let link of links">
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

在解释之后,最终得到如下结果:

<ul>
  <li #link1>
   </li>
  <li #link2>
   </li>
 </ul>
Run Code Online (Sandbox Code Playgroud)

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

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

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

Est*_*ask 18

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

<ul>
   <li *ngFor="let link of links" #linkRef></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

可以通过以下方式获得:

@ViewChildren('linkRef') linkRefs;
Run Code Online (Sandbox Code Playgroud)

  • @ amy8374肯定[不](http://plnkr.co/edit/cDEE2S3B27a3EvOrTfhH?p=preview).ViewChild引用单个元素.ViewChildren引用了多个. (4认同)