Uncaught Reference Input не определен - @Input() не работает в Angular 2

Я новичок, пытающийся выучить Angular2 из ng-book 2(v49). Вот содержимое файла article.componenets.ts:

import { Component, OnInit } from '@angular/core';
import { Article } from './article.model';

@Component({
  selector: 'app-article',
  templateUrl: './article.component.html',
 styleUrls: ['./article.component.css'],
 host: {
 class: 'row'
 }
})
export class ArticleComponent implements OnInit {
  @Input() article: Article;



  voteUp(): boolean {
    this.article.voteUp();
    return false;
  }

  voteDown(): boolean {
    this.article.voteDown();
    return false;
  }

  ngOnInit() {
  }

}

Вот ошибка на angular-cli:

ERROR in C:/Users/saad/Desktop/books/Angular JS2/angular2Reddit/src/app/article/article.component.ts (13,4): Cannot find name 'Input'.)
webpack: Failed to compile.

Ошибка консоли

2 ответа

Решение

У вас отсутствует импорт для директивы Input, поэтому измените первую строку как

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

Хорошей практикой является использование параметров @Input с некоторым значением, в противном случае вы получите ошибку необработанного обещания где-то в вашем приложении.

Для этого он может быть определен внутри вашего ngOnInit или конструктора

ngOnInit() {
   this.article={
         id: 0
         .....
   };
}

или же

constructor(....) {
   this.article={
         id: 0,
         .....
   };
}

Вы должны импортировать ввод, если вы хотите использовать его:

import { Component, OnInit, Input } from '@angular/core';
Другие вопросы по тегам