我有这项服务。当我执行$ 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服务器的特定消息之后刷新我的页面中的用户列表。 为此,我需要在控制器中更改范围。 但是如果我在服务器内部得到消息而不是在控制器内部,怎么能告诉控制器我想做什么?