如何从angular websocket服务更改范围内的数据?

时间:2015-07-26 14:12:48

标签: angularjs websocket

我有这项服务。当我执行$ rootScope时,它会让我出错。$ apply

(function () {
  'use strict';

  angular
    .module('AngularChatApp')
    .factory('WS', function($websocket, $rootScope, Online){

      var dataStream = $websocket("ws://"+apiconf.config.ws_server+"/ws");

      var collection = [];

      dataStream.onMessage(function(message) {
        message = JSON.parse(message.data)
        console.log(message);
        if(message.action=='update_users_online'){
            Online.getOnline(function(rezult){

                $rootScope.$apply(function(){
                    $rootScope.user_list = rezult.user_list;
                });
            })        
        }
      });

      dataStream.onOpen(function(message) {

      });

      var methods = {

        collection: collection,

        send: function(mess) {
          dataStream.send(JSON.stringify(mess));
        }

      };

      return methods;   

    });


})(); 

我希望在来自websocket服务器的特定消息之后刷新我的页面中的用户列表。 为此,我需要在控制器中更改范围。 但是如果我在服务器内部得到消息而不是在控制器内部,怎么能告诉控制器我想做什么?

0 个答案:

没有答案