2016-10-05 2 views
1

Я этот компонент:угловые 2 как получить inyected данные из контроллера

<element skillType="tec"></element> 

Мне нужно, чтобы получить skillType параметров в мой контроллер, я делаю это так:

@Component({ 
    selector: 'element', 
    template: ` 
    {{skillType}} 
    ` 
}) 
    export class element { 

     @Input() skillType: string; 
     console.log(skillType); 
    } 

В шаблоне я получаю текст tec, но в журнале я получаю undefined, я также пробовал с ngOnInit, но все равно получаю те же результаты.

любые мысли?

благодарит заранее!

+0

что ТЕС? значение или переменная? – micronyks

+0

@micronyks hi, это значение –

+0

Вы имеете в виду строку 'tec'? – micronyks

ответ

2

If ридера является строка затем,

<element skillType="'tec'"></element> 

export class element { 

    @Input() skillType: string; 

    ngOnInit(){ 
     console.log(this.skillType); 
    } 
} 

Если ТЕС является выражение,

<element [skillType]="tec"></element> 

export class element { 

    @Input() skillType: string; 

    ngOnInit(){ 
     console.log(this.skillType); 
    } 
} 
2

Я считаю, что это имеет какое-то отношение к импорту вашего компонента в компонент, который вы на самом деле используете в нем, и как вы не имеете в виду переменную класса, используя this.

Например - использовать компонент элемента, скажем, загрузить компонент, который нужно импортировать его, а затем добавить его в массив директив так:

import { ElementComponent } from '../shared/test.component.ts'; 

@Component({ 
    selector: 'upload', 
    templateUrl: './upload.component.html', 
    styleUrls: ['./upload.component.scss'], 
    providers: [UploadService, ThreeService, HelperService, ExampleProductService], 
    directives: [LoaderComponent, ProductEditorComponent, ElementComponent] 
}) 

я переписал свой компонент, как мой компилятор жалуется на console.log:

import { Component, Input } from '@angular/core'; 

@Component({ 
    selector: 'element', 
    template: `<p>{{skillType}}</p>` 
}) 
export class ElementComponent { 
    @Input() skillType: string; 

    ngOnInit() { 
    console.log(this.skillType); 
    } 
} 
Смежные вопросы