我正在使用Angular CLI 6.1.4,目前正在努力解决以下问题:
我创建了一个结构指令,该指令的工作方式类似于*ngIf
,但采用html元素的name或id属性值来确定其是否显示。
问题是我无法将<button>
的name属性传递给结构指令。
我的按钮:
<button name="bla" *ngIfVisible="this.name">TEST</button> //this is not working!
我的结构指令
import { Directive,TemplateRef,ViewContainerRef,Input } from '@angular/core';
import { UserPermissionService } from '../services/user-permission.service';
@Directive({
selector: '[ngIfVisible]'
})
export class NgIfVisible {
constructor(private templateRef: TemplateRef<any>,private viewContainer: ViewContainerRef,private userPermissionService: UserPermissionService) { }
@Input()
set ngIfVisible(name: any) {
if (this.userPermissionService.isElementVisible(name)) {
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.clear();
}
}
}
我只是希望将名称bla
传递给指令...
我已经尝试过:
<button #name="bla" *ngIfVisible="name">TEST</button>
和
<button name="bla" *ngIfVisible="$(this).attr('name')">TEST</button>
但是它们都不起作用...请帮助!