Angular 角度2;在Typescript中而不是在HTML中使用ViewChild将方法分配给EventEmitter?

Angular 角度2;在Typescript中而不是在HTML中使用ViewChild将方法分配给EventEmitter?,angular,Angular,在Angular 2中,如何使用Typescript中的ViewChild将EventEmitter分配给其方法处理程序 使用HTML处理来自EventEmitter的事件: my.component.html <some-component [someProperty]="myProperty" (onSomeEvent)="myMethod($event)></some-component> <some-component #someComponent>

在Angular 2中,如何使用Typescript中的ViewChild将EventEmitter分配给其方法处理程序

使用HTML处理来自EventEmitter的事件:

my.component.html

<some-component [someProperty]="myProperty" (onSomeEvent)="myMethod($event)></some-component>
<some-component #someComponent></some-component>
我希望如何处理事件(在Typescript中):

my.component.html

<some-component [someProperty]="myProperty" (onSomeEvent)="myMethod($event)></some-component>
<some-component #someComponent></some-component>

my.component.ts

export class MyComponent {
    public myProperty: string;
    ...
    public myMethod(event: any) {
        ... //handle event
    }
    ...
}
export class MyComponent {
    @ViewChild('someComponent') someComponent: SomeComponent;
    ngOnInit() {
        this.someComponent.someProperty = myProperty;
        this.someComponent.onSomeEvent = ? <-- How do I assign EventEmitter?
    }
    public myProperty: string;
    ...
    public myMethod(event: any) {
        ... //handle event
    }
    ...
}
导出类MyComponent{
@ViewChild('someComponent')someComponent:someComponent;
恩戈尼尼特(){
this.someComponent.someProperty=myProperty;

this.someComponent.onSomeEvent=?一个月后,当我再次遇到这个问题时,我发现了这个问题,并在搜索中意外地发现了我自己的问题

因为Angular的EventEmitter利用了可观察的对象,所以在幕后他们只是订阅了可观察的对象。如果你想在组件类型脚本中分配处理程序,你也可以这样做

根据我上面的例子:

export class MyComponent {
    @ViewChild('someComponent') someComponent: SomeComponent;
    ngOnInit() {
        this.someComponent.someProperty = myProperty;
        this.someComponent.onSomeEvent.subscribe(event => this.myMethod(event));
    }
    public myProperty: string;
    ...
    public myMethod(event: any) {
        ... //handle event
    }
    ...
}

一个月后,当我再次遇到这个问题时,我发现了这个问题,并在搜索中意外地发现了我自己的问题

因为Angular的EventEmitter利用了可观察的对象,所以在幕后他们只是订阅了可观察的对象。如果你想在组件类型脚本中分配处理程序,你也可以这样做

根据我上面的例子:

export class MyComponent {
    @ViewChild('someComponent') someComponent: SomeComponent;
    ngOnInit() {
        this.someComponent.someProperty = myProperty;
        this.someComponent.onSomeEvent.subscribe(event => this.myMethod(event));
    }
    public myProperty: string;
    ...
    public myMethod(event: any) {
        ... //handle event
    }
    ...
}

感谢这一点,现在我看到了在HTML或Typescript上发射的区别。感谢这一点,现在我看到了在HTML或Typescript上发射的区别。