以 String 作为输入的 angular2 结构指令
angular2 structural directive with String as input
我正在尝试使用给定的示例创建结构指令
here
只需修改以在此处将字符串作为输入传递,我在调用此指令表单标记时将 'undefined' 作为输入值。
@Input() set myUnless(value: String) {
if (value=== 'something') {
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.clear();
}
}
对实现这个有什么帮助吗?
编辑:
想法是创建一个 hasRole 指令,它接受一个角色作为字符串和 return 布尔值,基于是否在存储在本地存储中的角色中找到。
实现代码为:
<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;
}
}
你组件的属性ADMIN
其实是undefined
;-)
改用
*unless="'ADMIN'"
我正在尝试使用给定的示例创建结构指令 here
只需修改以在此处将字符串作为输入传递,我在调用此指令表单标记时将 'undefined' 作为输入值。
@Input() set myUnless(value: String) {
if (value=== 'something') {
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.clear();
}
}
对实现这个有什么帮助吗?
编辑: 想法是创建一个 hasRole 指令,它接受一个角色作为字符串和 return 布尔值,基于是否在存储在本地存储中的角色中找到。
实现代码为:
<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;
}
}
你组件的属性ADMIN
其实是undefined
;-)
改用
*unless="'ADMIN'"