【发布时间】:2015-06-24 06:31:42
【问题描述】:
我编写了一个使用 EventEmitter 类的基本 Angular 应用程序,但是我无法让监听组件捕获事件。
这是我的代码(在 Angular2 上使用 alpha.27 / TypeScript 1.5 编译为 ES5) 为冗长的例子道歉。
任何关于我做错了什么的建议将不胜感激。
import {Component, View, EventEmitter} from 'angular2/angular2';
@Component({
selector: 'login',
events : ['loggedIn']
})
@View({
template: '<button type="button" (click)="submitForm()">Click Me</button>'
})
export class Login {
loggedIn = new EventEmitter();
constructor() {
}
submitForm() {
console.log("event fired");
this.loggedIn.next({});
}
}
@Component({
selector: 'app'
})
@View({
template: "<div>This is the application</div>"
})
export class App {
constructor() {
}
}
@Component({
selector: 'root'
})
@View({
template: '<app [hidden]=!showApp></app><login (loggedIn)="loggedIn()" [hidden]=showApp></login>',
directives: [ App, Login ]
})
export class Root {
showApp:boolean;
constructor() {
this.showApp = false;
}
loggedIn() {
console.log("event caught");
this.showApp = true;
}
}
【问题讨论】:
-
感谢您的回复。我试过: (^loggedIn)="loggedIn()" 但这并没有解决问题。
-
我们可以删除这个问题吗?这很令人困惑,因为 ng2 已经更新,现在问题和答案都不是最新的
标签: typescript eventemitter angular typescript1.5