Day*_*mer 8 eventemitter typescript typescript1.5 angular
我编写了一个使用EventEmitter类的基本角度应用程序,但是我无法获取侦听组件来捕获事件.
这是我的代码(在Angular2/TypeScript 1.5上使用alpha.27编译为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;
}
}
Run Code Online (Sandbox Code Playgroud)
这是你的应用程序的工作Plunker.
import {Component, View, EventEmitter, bootstrap} from '@angular/core';
@Component({
selector: 'login',
events : ['update']
})
@View({
template: '<button type="button" (click)="submitForm()">Login</button>'
})
class Login {
constructor() {
this.update = new EventEmitter();
}
submitForm() {
this.update.next();
}
}
@Component({
selector: 'app'
})
@View({
template: "<div>This is the application</div>"
})
class App {}
@Component({
selector: 'root'
})
@View({
template: `
<app [hidden]="!showApp"></app>
<login (update)="loggedIn()"
[hidden]="showApp"></login>
`,
directives: [App, Login]
})
class Root {
showApp:boolean;
constructor() {
this.showApp = false;
}
loggedIn() {
this.showApp = true;
}
}
bootstrap(Root);
Run Code Online (Sandbox Code Playgroud)
我认为有一些问题.(update)在模板中是一种事件,因此无法调用loggedIn.我发现只是简单地调用这个事件就更容易update了.
| 归档时间: |
|
| 查看次数: |
20956 次 |
| 最近记录: |