Javascript 以字符串作为输入的angular2结构指令

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();

我试图用给出的例子创建一个结构指令

只需在此处修改将字符串作为输入传递,就可以在调用此指令表单标记时将“undefined”作为输入值

@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'"

您如何使用它?请向代码展示您如何使用该指令。编辑以添加代码来显示该指令的实现和使用。谢谢解决方案成功:)这是一个愚蠢的错误。。。。但这种情况经常发生