为每个迭代元素HTML Angular 2添加唯一值

时间:2017-05-17 08:20:56

标签: javascript html angular

我对Angular 2有疑问。 我想像这样制作List HTML:

<ul>
   <li>
   <li>..
</ul>

使用链接但我不知道如何在NG2中向HTML对象添加iterate参数。 这是我的代码:

<ul>
    <li   *ngFor="let item of geoNames | filterBy: userFilter" 
                   (click)="showNameG= !showNameG" >
        <a>{{ item.name }}</a>
    </li>
</ul>

<div *ngIf="showNazwyG">
     <show-NameG></show-NameG>
</div>

我想为每个要识别的元素li添加一个不同的名称。在AngularJS中有这样的工作:

(click)="showNameG{{index}}= !showNameG{{index}}" 

3 个答案:

答案 0 :(得分:4)

FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(android.R.id.content , new StatusFragment()); fragmentTransaction.commit(); 提供*ngFor上下文变量

index

<强>更新

<li *ngFor="let item of geoNames | filterBy: userFilter; let i=index"
    (click)="showNameG[i]= !showNameG[i]" ><a>{{ item.name }}</a></li>
<li *ngFor="let item of geoNames | filterBy: userFilter; let i=index"
    (click)="self['showNameG'] + i = !self['showNameG']" ><a>{{ item.name }}</a></li>

答案 1 :(得分:1)

使用item,创建一个属性showNameG并切换其值

<li *ngFor="let item of geoNames | filterBy: userFilter" (click)="item.showNameG=!item.showNameG" ></li>

答案 2 :(得分:0)

您必须在* ngFor:

中添加以下内容
let index = index;

最后你应该有这个:

<ul>
  <li   *ngFor="let item of geoNames | filterBy: userFilter; let index = index;" (click)="showNameG[index] = !showNameG[index]" ><a>{{ item.name }}</a></li>
</ul>

以下是* ngFor的详细说明: https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html