Javascript 将唯一值添加到每个迭代元素2
我对角度2有问题。 我想制作如下HTML列表:Javascript 将唯一值添加到每个迭代元素2,javascript,html,angular,Javascript,Html,Angular,我对角度2有问题。 我想制作如下HTML列表: <ul> <li> <li>.. </ul> (click)="showNameG{{index}}= !showNameG{{index}}" 使用item,创建属性showNameG,并切换其值 <li *ngFor="let item of geoNames | filterBy: userFilter" (click)="item.showNameG=!item.sho
<ul>
<li>
<li>..
</ul>
(click)="showNameG{{index}}= !showNameG{{index}}"
使用
item
,创建属性showNameG
,并切换其值
<li *ngFor="let item of geoNames | filterBy: userFilter" (click)="item.showNameG=!item.showNameG" ></li>
*ngFor
提供了一个索引
上下文变量
<li *ngFor="let item of geoNames | filterBy: userFilter; let i=index"
(click)="showNameG[i]= !showNameG[i]" ><a>{{ item.name }}</a></li>
您必须将以下内容添加到*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>
- 有一个很好的解释手册页面。在理想的世界中,我同意这是最佳实践(以及我所做的)。但既然OP在AnguarJS上下文中提到了
索引
,那么向他们展示同样的东西可能会很方便。@NeilLunn,正如Günter Zöchbauer已经提到的,现在添加将贬低他的答案。因此,暂时坚持使用此解决方案无法工作,因为项的名称可以是2个或多个单词。是的,它正在工作,但如何在*ngIf DictionaryComponent.html:10错误类型错误:无法读取未定义此错误的属性“0”,当我单击它时,我有点误解了您的问题。在components类中,您需要类似于(单击)=“self.['showName'+i]=!self.['showName'+i]
和get self(){return this;}
。甚至可能(单击)=“this.['showName'+i]=”!这个。['showName'+i]
可以工作(没有额外的getter),但我不确定。只是一个额外的提示:{{}
永远不会与[foo]
或(foo)
一起工作。要么是一个,要么是另一个,但决不能两者兼而有之。
export class MyComponent {
get self() {
return this;
}
}
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>