【发布时间】:2015-11-19 13:20:23
【问题描述】:
使用的 Angular 2 版本:2.0.0-alpha.44
我正在尝试从组件发出输出信号。我关注了 Angular 文档here .下面是我的组件的代码
@Component({
selector: 'summary'
})
@View({
directives: [NgFor, NgIf, ROUTER_DIRECTIVES, LogoutComponent, BarChartDirective, SunburstChartDirective],
templateUrl: 'view/summary-component.html'
})
export class SummaryComponent {
@Output() loadSummary: EventEmitter = new EventEmitter();
project: Project;
data: any;
constructor(public http: Http,
public router: Router,
public xxxGlobalService: XXXGlobalService) {
console.log("SummaryComponent: Created");
this.getSummary()
}
getSummary() {
this.project = this.xxxGlobalService.getOpenedProject();
var url = "/project_summary?username="+ this.xxxGlobalService.getUser().name + "&project_id=" + this.project.id;
this.http.get(url)
.map(res => res.json())
.subscribe(
data => this.extractData(data),
err => this.logError(err),
() => console.log('SummaryComponent: Successfully got the summary')
);
}
extractData(data) {
this.data = data;
console.log("SummaryComponent: Emitting loadSummary event");
this.loadSummary.next("event");
}
}
但是,当我尝试分配 EventEmitter(下一行)时,我收到错误消息“TypeError: router_1.EventEmitter is not a function”
@Output() loadSummary: EventEmitter = new EventEmitter();
我检查了link 并将该行修改为看起来像
@Output() loadSummary: EventEmitter;
但 loadSummary 似乎始终未定义。 如何发出输出信号?请帮忙
【问题讨论】:
-
EventEmitter必须从angular2/angular2导入,而不是从angular2/router导入。 -
@EricMartinez。非常感谢。它奏效了。
-
对于 Angular2 beta 3 使用 import EventEmitter from 'angular2/core'
标签: javascript angular