结构指令传递Html元素属性值

结构指令传递Html元素属性值,html,angular,typescript,directive,Html,Angular,Typescript,Directive,我正在使用Angular CLI 6.1.4,目前我正在解决以下问题: 我创建了一个structural指令,它的工作原理应该类似于*ngIf,但是使用html元素名或id属性值来决定是否显示它 问题是我无法将我的的name属性传递给我的structural指令 我的按钮: TEST//这不起作用! 我的结构指令 import{Directive,TemplateRef,ViewContainerRef,Input}来自'@angular/core'; 从“../services/user p

我正在使用Angular CLI 6.1.4,目前我正在解决以下问题:

我创建了一个structural指令,它的工作原理应该类似于
*ngIf
,但是使用html元素名或id属性值来决定是否显示它

问题是我无法将我的
的name属性传递给我的structural指令

我的按钮:

TEST//这不起作用!
我的结构指令

import{Directive,TemplateRef,ViewContainerRef,Input}来自'@angular/core';
从“../services/user permission.service”导入{UserPermissionService};
@指示({
选择器:“[ngIfVisible]”
})
导出类不可见{
构造函数(私有templateRef:templateRef,私有ViewContainerRef:ViewContainerRef,私有userPermissionService:userPermissionService){}
@输入()
设置ngIfVisible(名称:any){
if(this.userPermissionService.isElementVisible(名称)){
this.viewContainer.createEmbeddedView(this.templateRef);
}否则{
this.viewContainer.clear();
}
}
}
我只想将名称
bla
传递给指令

我已经试过了:

测试

测试
但它们都不起作用。。。请帮忙

试试看:

<button *ngIfVisible="name;name:'bla'">TEST</button>
测试
在您的指令中,将额外的
name
属性读作
ngIfVisibleName
(注意这里的
name
,而不是
name
)作为
输入
,就像您使用
ngIfVisible
一样


你能创建一个stackblitz来重现这个问题吗?我希望到目前为止还可以:这可能会起作用,但是我正在将一个未定义的值传递给我的directive属性,
bla
传递给我的
@Input
。。。当按钮的名称属性更改时,我必须在名称属性中以及在
*ngIfVisible=“name;name:'bla'”
中修复此问题。如果我能传递按钮的实际
name
属性,不是更好吗?显然,如果您使用的是structural指令,就无法获得元素的句柄。