2017-02-22 20 views
1

Я могу получить значение в представлении, но не в конструкторе. Мой компонент находится в ngFor, и я хочу редактировать каждый элемент самостоятельно. Вот почему я создаю дочерний компонентКак получить значение ввода в проекте Angular 2 без машинописных текстов

<li style="list-style-type: none;" *ngFor="let event of item.Events"> 
... <child-component [demo]="event"></child-component> 

В компоненте ребенка: я могу показать результат демо в представлении, но я не могу получить его в конструкторе, чтобы иметь возможность манипулировать

@Component({ 
    selector: 'child-component', 
    queries: { 
     content: new ViewChild('content') 
    }, 
    templateUrl: 'build/pages/dashboard/timeline/timeline-feeling/index.html', 
    ... 
    inputs: ['demo'], 
    ... 
}) 

export class TimelinFeeling{ 
    static get parameters() { 
     return []; 
    } 

    constructor() { 
     this.demo = demo; 
     console.log(this.demo); //return undefined 
    } 

ответ

0

Значения ввода еще не установлены в конструкторе. Используйте ngOnInit() вместо:

ngOnInit() { 
    console.log(this.demo); //return undefined 
} 
+0

Благодарим вас за быстрый ответ. У меня есть эта ошибка с вашим решением: ORIGINAL EXCEPTION: ReferenceError: demo не определено –

+0

У вас должна быть такая же проблема в коде вашего вопроса. Не уверен, что это за намерение. Я думаю, вы можете просто удалить его. –

+1

Thans you it works;) –

1

Объявите свойство (требование машинописи) и украсить его @Input (Angular требования):

import { Input, ViewChild, ElementRef } from '@angular/core'; 
@Component({ 
    selector: 'child-component', 
    templateUrl: 'build/pages/dashboard/timeline/timeline-feeling/index.html', 
    ... 
}) 

export class TimelinFeeling{ 
    @Input() public demo = null; 
    @ViewChild('content') content: ElementRef; 
    static get parameters() { 
     return []; 
    } 

    ngOnInit() { 
     this.demo = demo; 
     console.log(this.demo); //return undefined 
    } 

Наконец, проверьте значение в ngOnInit вместо.

+0

Благодарим вас за быстрый ответ. У меня есть эта ошибка с вашим решением: Ошибка синтаксиса Неожиданный токен (31:18) –

+0

Хорошо, но вы использовали его как есть? Какая строка соответствует (31:18) в вашем коде? –

 Смежные вопросы

  • Нет связанных вопросов^_^