我将如何引用在ngFor循环中创建的dom中的Element.
例如,我有一个迭代的元素列表:
var cookies: Cookie[] = [...];
<div *ngFor="#cookie of cookies" id="cookie-tab-button-{{cookie.id}}" (click)="showcookie(cookie);">Cookie tab</div>
<div *ngFor="#cookie of cookies" id="cookie-tab-content-{{cookie.id}}" ">Cookie Details</div>
Run Code Online (Sandbox Code Playgroud)
我如何引用这些div,所以我可以添加一个像"is-active"这样的css类.或者我的方法是错的.
Gün*_*uer 29
如果要添加/删除类使用绑定
<div *ngFor="let cookie of cookies" [class.isActive]="someExpression" ....>
Run Code Online (Sandbox Code Playgroud)
要么
<div *ngFor="let cookie of cookies" [ngStyle]="{'isActive': someExpression}" ....>
Run Code Online (Sandbox Code Playgroud)
具体例子:
activeCookie:string = 'b';
cookies:string[] = ['a', 'b', 'c'];
Run Code Online (Sandbox Code Playgroud)
<div *ngFor="letcookie of cookies" [class.isActive]="cookie == activeCookie" ....>
Run Code Online (Sandbox Code Playgroud)
如果您真的想获得参考,您可以使用
<div #someName *ngFor="let cookie of cookies" id="cookie-tab-button-{{cookie.id}}" (click)="showcookie(cookie);">Cookie tab</div>
@ViewChildren('someName') someDivs;
ngAfterViewInit() { // or some event handler
someDivs.toArray()[0].nativeElement.classList.add('isActive');
}
Run Code Online (Sandbox Code Playgroud)
<style>
.active{
background:blue;
}
</style>
<div [ngClass]="{active:(i==selectedIndex)}"
*ngFor="#cookie of cookies;#i=index"
id="cookie-tab-button-{{cookie.id}}"
(click)="showcookie(cookie,i);">Cookie tab
</div>
showcookie(val, i){
console.log(val + i);
this.selectedIndex=i;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27931 次 |
最近记录: |