2016-04-11 42 views
0

Öznitelik yönergesiyle ilgili bir sorunum var.Yönergede dize özelliğiyle ilgili sorun

Ben tanımladığınız şu direktifi:

import {Directive, Input, ElementRef} from 'angular2/core'; 
@Directive({ 
    selector: '[chooseMe]' 
}) 

export class ChooseMe { 
    @Input('chooseMe') data: string; 
    constructor(private _elementRef:ElementRef) { 
    console.log(this.data);  
} 
} 

Ve bunu böyle kanca:

<button [chooseMe]="example"> W/E</button> 

Ve tabii

, benim bileşeninde ben vardır:

Ancak
@Component({ 
..., 
directives:[ChooseMe] 
}) 

, her seferinde this.data tanımsızdır. Benim hatam nerede?

cevap

1

Girişler, ilk kez ngOnChanges() adı verilmeden önce ayarlanmamıştır.
ngOnInit() ilk ngOnChanges() sonra denir:

import {Directive, Input, ElementRef} from 'angular2/core'; 
@Directive({ 
    selector: '[chooseMe]' 
}) 
export class ChooseMe { 
    @Input('chooseMe') data: string; 
    constructor(private _elementRef:ElementRef) { 
    } 

    ngOnInit() { 
     console.log(this.data);  
    } 
} 
+1

Gunter doğrudur - sadece kod ile kontrol - http://plnkr.co/edit/UoE1mIvfympVxPe6rNtd?p=preview – micronyks

+0

Belki 'example'' hala undefined'? –

+0

@ GünterZöchbauer, haklısınız - Düz dizgeyi geçmek istiyorum. mümkün mü? – uksz

İlgili konular