gpt4 book ai didi

events - signalR调用客户端时如何在Angular2中抛出事件

转载 作者:太空狗 更新时间:2023-10-29 18:35:00 24 4
gpt4 key购买 nike

在我的 angular2-Application 中的 SignalR-Service 中,我想在收到来自服务器的事件时广播一个事件。

@Injectable() export class SignalRService {

//...
private emitMe: EventEmitter<any>;

constructor() {
this.emitMe = new EventEmitter();
this.connection = jQuery.hubConnection(".../signalr/");
this.proxy = this.connection.createHubProxy("...");
this.wireupEvents();
//...
}

wireupEvents(): void {
this.proxy.on('ItemAdded', function(data) {
console.log('received ItemAdded' + JSON.stringify(data));
//How to throw event here??? Like $rootScope.$emit('itemAdded', data);
// 'this.emitMe' is not reachable here
});
}
}

如何访问我初始化的 EventEmitter 并抛出一个我可以从外部订阅的事件?

谢谢

问候泰诺达

最佳答案

你可以尝试这样的事情:

constructor() {
this.emitMe = new EventEmitter();
//...
}

wireupEvents(): void {
this.proxy.on('ItemAdded', (data) => {
console.log('received ItemAdded' + JSON.stringify(data));
let someObject = (...)
this.emitMe.emit(someObject);
});
}

使用箭头函数,您可以直接在回调中使用 this 关键字。这个答案也可以帮助你:Angular 2 can't call class function .

希望对你有帮助,蒂埃里

关于events - signalR调用客户端时如何在Angular2中抛出事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34857124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com