使用WebSocket将JSON推送到Angular客户端

时间:2014-06-12 15:32:45

标签: javascript json angularjs websocket

我有一个解决方案可以正常工作。但它使用$ rootScope,如下所示:

angularApp.run(['$rootScope', function($rootScope){
    $rootScope.socket = {};
    $rootScope.socket.messages = [];

    var socket = io.connect('/', {});

    socket.on('messages', function (messages) {
        if (! angular.equals($rootScope.socket.messages, messages)) {
            $rootScope.socket.messages = messages;
            $rootScope.$apply();
        }
    });
}]);

根据文档中的最后一段,$ rootScope是不好的做法,与全局变量相当:https://docs.angularjs.org/misc/faq

没有$ rootScope,最好的做法是什么?我尝试过将这项服务与$ watch结合使用,但无法让它发挥作用。

1 个答案:

答案 0 :(得分:0)

您应该创建一个SocketService,并通过依赖注入为您的控制器提供它。

Dependency Injection

Understanding Dependency Injection