Я создаю пользовательскую директиву и задаю селектор значение «[за исключением директивы]».angular2 пользовательские директивы ввод синтаксиса
Директива получить логическое и использовать его, чтобы изменить вид, как так:
import {Directive, TemplateRef, ViewContainerRef} from 'angular2/core';
@Directive({
selector: '[unless-directive]',
inputs: ['givenBoolean : myDirectiveFunction']
})
export class UnlessDirective {
private _templateRef: TemplateRef;
private _viewContainerRef: ViewContainerRef;
constructor(_templateRef: TemplateRef, _viewContainerRef: ViewContainerRef) {
this._templateRef = _templateRef;
this._viewContainerRef = _viewContainerRef;
}
set myDirectiveFunction(condition: boolean) {
!condition ? this._viewContainerRef.createEmbeddedView(this._templateRef)
: this._viewContainerRef.clear();
}
}
В моем шаблоне я пытался передать состояние так:
<div name="customDirective">
<h2>Custom Directive</h2>
<div>
Enter true or false:
<br/>
<input type="text" #condition (keyup)="0"/>
<div *unless-directive [givenBoolean]="condition.value != 'false'">
Only shown if 'false' wad enterded!
</div>
</div>
</div>
Когда я запустить код Я получаю эту ошибку:
EXCEPTION: Template parse errors: Can't bind to 'givenBoolean' since it isn't a known native property (" ... Only shown if 'false' wad enterded!"): [email protected]:39
Я предполагаю, что мой синтаксис неверен, но я не могу найти, где и почему?
Я искал его на Angular2 Docs, но в примере одно и то же имя для ввода и селектора - вещь, которую я пытаюсь избежать.
Может ли кто-нибудь знать лучший способ или может найти мою проблему с синтаксисом?
Спасибо.
Вы добавили 'UnlessDirective' в список директив компонента, в котором вы его используете? Для меня это звучит так, как будто директива не добавлена. Также проверьте, называется ли конструктор директивы вообще. –
@ Günter Zöchbauer Да, я добавил к директивам в Компоненте, которые его используют. Это правильный способ сделать это? У меня нет синтаксической ошибки? правильно? –
Да, AFAIK. Вы проверили, что директива фактически создана? –