0
data
引数のサーバから来る配列を返すように定義されたソケットファクトリをsocket.on('user_entrance')
に持っています。AngularファクトリーのSocket.io関数からの戻り値
.factory('sockets',function(){
var user_name = window.prompt('enter your name');
var socket = io('http://localhost:3002');
var online_users = [];
socket.emit('user_name', user_name);
socket.on('user_entrance', function(data,my_id){
online_users.push(data);
});
return online_users;
})
と私はonline_users
を使用するコントローラで、私はそうのような「ソケットの工場」への依存を注入が、undefinedを返します。
.controller('ChatsCtrl', function($scope, Chats,sockets) {
//this is undefined
console.log(online_users);
})
しかし、私はこのコードを任意のコントローラで実行するとうまくいきます。
.controller('someCtrl',function(){
var user_name = window.prompt('enter your name');
var socket = io('http://localhost:3002');
var online_users = [];
socket.emit('user_name', user_name);
socket.on('user_entrance', function(data,my_id){
online_users.push(data);
});
//this works fine
console.log(online_users);
})
私はこの作業を取得することができ、私は他のcontrollers.Howで返された値にアクセスできるように、工場内のコードを実行したいと思いますか?
、私は配列を返すことができました – yaboiduke