2016-09-21 12 views
1

入力として私のディレクティブに渡そうとしているブール値に奇妙な問題があります。何らかの理由で、angleはbooleanを文字列に変換していますが、ブール値として型を指定しています。私は入力を定義し、それはだ設定ここでは、角2(RC.6)指令@Inputが文字列に変換されています

<label for='showBackground' cmgSharedCustomCheckbox='{{background}}'><span></span>Include Background</label> 

指令:、ここで私は私の指示入力に背景をバインド

export class ModalsExportComponent extends Modal { 
    private background: boolean = false; 
    ... 
} 

テンプレート:

コンポーネントは、あなたが背景を見ることができるようにブール値ですブール値として入力しますが、それは何とか文字列に変換されます:

@Directive({ 
    selector: '[cmgSharedCustomCheckbox]' 
}) 

export class SharedCustomCheckboxDirective implements AfterViewChecked { 
    @Input('cmgSharedCustomCheckbox') isChecked: boolean; 

    constructor( private element: ElementRef, 
       private renderer: Renderer) { } 

    public ngAfterViewChecked(): void { 
    this.renderer.setElementClass(this.element.nativeElement.children[0], 'checkbox-unselected', true); 
    } 

    @HostListener('click') click(): void { 
    console.log(typeof this.isChecked); 
    if (this.isChecked) { 
     console.log('here'); 
     this.renderer.setElementClass(this.element.nativeElement.children[0], 'checkbox-unselected', false); 
     this.renderer.setElementClass(this.element.nativeElement.children[0], 'checkbox-selected', true); 
    } 
    } 
} 

insi私のクリックホストリスナー私はこの文字列を記録this.isCheckedの種類のコンソールログを持っています。この値がブール値であることを私が告げたという事実を尊重するためにどのように角を取得するのですか?括弧の間に記載here

として

答えて

1

材料は角最初の評価されるテンプレートの表現であり、文字列に変換します。

<label for='showBackground' [cmgSharedCustomCheckbox]='background'>...</label> 
を使用し、文字列以外の値をバインドするには
関連する問題