Ich versuche, eine strukturelle Richtlinie mit dem Beispiel gegeben erstellen hereangular2 Strukturrichtlinie mit String als Eingabe
Nur mit einer Änderung String als Eingabe hier zu passieren, habe ich als Eingabewert ‚undefined‘ beim Aufruf diese Direktive Form Markup.
@Input() set myUnless(value: String) {
if (value=== 'something') {
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.clear();
}
}
Irgendwelche Hilfe, um dies zu erreichen?
Edit: Idee ist es, eine hasRole Richtlinie zu schaffen, das eine Rolle als String und zurück boolean auf der Grundlage akzeptieren, wenn dies im lokalen Speicher gespeichert in Rollen gefunden.
Implementierungscode lautet:
<a routerLink="/list" *unless="ADMIN">
<i class="fa fa-list"></i> <span>List</span>
</a>
und Code für Direktive ist wie:
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;
}
}
Wie verwenden Sie es? – yurzui
Bitte zeigen Sie den Code, wie Sie die Direktive verwenden. –
Editiert, um Code zur Implementierung und Verwendung der Direktive hinzuzufügen. – 4rpit