【问题标题】:SignalR 2.X and JQuery 3.X "ON" not firedSignalR 2.X 和 JQuery 3.X “ON”未触发
【发布时间】:2020-09-12 07:13:24
【问题描述】:

我在使用任何版本的 JQuery 3.x 运行 SignalR 2.4.1 时遇到问题

我有一个非常简单的集线器,可以将推送通知发送到 AngualrJS 应用程序。该应用程序适用于 JQuery 1 和 2,但一旦我升级到 3,SignalR 就会停止工作。 我读到了旧加载的问题,卸载。但事实并非如此,因为它已在 2.2.1 中修复

我在控制台中没有错误,angualrJS 工厂只想在通知到来时触发 ON 事件。

这是我使用的代码,非常标准,可以很好地与 JQuery

function signalRHubProxyFactory(serverUrl, hubName, startOptions) {
        var connection = $.hubConnection(signalRServer);
        var proxy = connection.createHubProxy(hubName);
        connection.start().done(function () { });

        return {
            on: function (eventName, callback) {
                proxy.on(eventName, function (result) {
                    $rootScope.$apply(function () {
                        if (callback) {
                            callback(result);
                        }
                    });
                });
            },
            off: function (eventName, callback) {
                proxy.off(eventName, function (result) {
                    $rootScope.$apply(function () {
                        if (callback) {
                            callback(result);
                        }
                    });
                });
            },
            invoke: function (methodName, callback) {
                proxy.invoke(methodName)
                    .done(function (result) {
                        $rootScope.$apply(function () {
                            if (callback) {
                                callback(result);
                            }
                        });
                    });
            },
            connection: connection
        };
    };

    return signalRHubProxyFactory;    

有人遇到同样的问题吗?

这是我的脚本列表

    <script src="../Scripts/jquery-3.5.1.js"></script>
    <script src="../Scripts/jquery.signalR-2.4.1.js"></script>
    <script src="../Scripts/bootstrap.min.js"></script>
    <script src="../Scripts/angular.min.js"></script>

谢谢

【问题讨论】:

    标签: jquery angularjs bootstrap-4 signalr


    【解决方案1】:

    对于遇到这个问题的每个人来说,为了使 AngularJS、SignalR 和 JQuery >= 3 工作,必须在它们之前添加 angular.js 脚本

    <script src="../Scripts/angular.min.js"></script>
    
    <script src="../Scripts/jquery-3.5.1.js"></script>
    <script src="../Scripts/jquery.signalR-2.4.1.js"></script>
    <script src="../Scripts/bootstrap.min.js"></script>
    
    

    【讨论】:

      猜你喜欢
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-29
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多