Я создаю настраиваемую директиву и устанавливаю для параметра селектора значение «[except-directive]».
Директива получает логическое значение и использует его для изменения представления следующим образом:
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>
Когда я запускаю код, я получаю эту ошибку:
ИСКЛЮЧЕНИЕ: ошибки синтаксического анализа шаблона: невозможно выполнить привязку к 'givenBoolean', поскольку это не известное собственное свойство ("... Отображается, только если введено 'false' wad!"): StructualDirectivesComponent @ 47: 39
Я предполагаю, что у меня неправильный синтаксис, но я не могу найти, где и почему?
Я нашел его в Angular2 Docs < / a>, но в примере используется одно и то же имя для ввода и селектора, чего я стараюсь избежать.
Может кто-нибудь знает способ получше или может найти мою синтаксическую проблему?
Спасибо.
UnlessDirective
в список директив компонента, в котором вы его используете? Для меня это звучит так, как будто директива не добавлена. Также проверьте, вызывается ли вообще конструктор директивы. - person Günter Zöchbauer   schedule 21.02.2016