Javascript 以字符串作为输入的angular2结构指令
我试图用给出的例子创建一个结构指令 只需在此处修改将字符串作为输入传递,就可以在调用此指令表单标记时将“undefined”作为输入值Javascript 以字符串作为输入的angular2结构指令,javascript,angular,angular2-directives,Javascript,Angular,Angular2 Directives,我试图用给出的例子创建一个结构指令 只需在此处修改将字符串作为输入传递,就可以在调用此指令表单标记时将“undefined”作为输入值 @Input() set myUnless(value: String) { if (value=== 'something') { this.viewContainer.createEmbeddedView(this.templateRef); } else { this.viewContainer.clear();
@Input() set myUnless(value: String) {
if (value=== 'something') {
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.clear();
}
}
这有什么帮助吗
编辑:
其思想是创建一个hasRole指令,该指令将角色作为字符串接受,并根据本地存储中存储的角色中是否存在该字符串返回布尔值
实施代码为:
<a routerLink="/list" *unless="ADMIN">
<i class="fa fa-list"></i> <span>List</span>
</a>
列表
指令的代码如下所示:
import { Directive, Input } from '@angular/core';
import { TemplateRef, ViewContainerRef } from '@angular/core';
@Directive({ selector: '[unless]' })
export class Unless {
constructor(
private templateRef: TemplateRef<any>,
private viewContainer: ViewContainerRef
) { }
@Input() set unless(role: String) {
return localStorage.getItem('roles').indexOf(role) > -1;
}
}
从'@angular/core'导入{指令,输入};
从“@angular/core”导入{TemplateRef,ViewContainerRef};
@指令({选择器:'[除非]'})
出口类,除非{
建造师(
私有templateRef:templateRef,
私有viewContainer:ViewContainerRef
) { }
@Input()集合(角色:字符串){
返回localStorage.getItem('roles').indexOf(role)>-1;
}
}
组件的属性ADMIN
实际上是未定义的
改用
*unless="'ADMIN'"
您如何使用它?请向代码展示您如何使用该指令。编辑以添加代码来显示该指令的实现和使用。谢谢解决方案成功:)这是一个愚蠢的错误。。。。但这种情况经常发生