首页 文章

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

提问于
浏览
10

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

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

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

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

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

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

EDIT AFTER SEEING THE ANSWERS AND TRYING OUT COMBINATIONS:

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

3 回答

  • 0

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

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

    可以通过以下方式获得:

    @ViewChildren('linkRef') linkRefs;
    
  • 13

    你可以使用这样的代码:

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

    看这个问题:enter link description here

  • -4

    您可以使用索引 .

    <ul>
    <li *ngFor="let link of links; let i=index;">
    {{link.title}}{{i}} 
    </li>
    </ul>
    

相关问题