我是一名新手,试图从ng-book 2(v49)学习Angular2。以下是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.
答案 0 :(得分:5)
您缺少Input指令的导入,因此将第一行更改为
import { Component, OnInit, Input } from '@angular/core';
优良作法是让@Input参数具有某些值,否则您最终会在应用程序中的某些位置获得未处理的承诺错误。
为此,可以在 ngOnInit 或构造函数
中定义ngOnInit() {
this.article={
id: 0
.....
};
}
或
constructor(....) {
this.article={
id: 0,
.....
};
}
答案 1 :(得分:3)
如果要使用输入,则必须导入输入:
import { Component, OnInit, Input } from '@angular/core';