Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Angularjs socket.io服务_Node.js_Angularjs_Socket.io_Angularjs Directive_Angularjs Scope - Fatal编程技术网

Node.js Angularjs socket.io服务

Node.js Angularjs socket.io服务,node.js,angularjs,socket.io,angularjs-directive,angularjs-scope,Node.js,Angularjs,Socket.io,Angularjs Directive,Angularjs Scope,嗨,我正在构建一个angularjs服务,它将通过socket.io使用WebSocket与后端(node.js)通信。我在网上找到了一段代码,但我不太明白它是如何工作的。特别是在“var args=arguments”下的行上。帮忙 angularjs_service.js app.factory('socket', function ($rootScope) { var socket = io.connect(); return { on: function (eventNa

嗨,我正在构建一个angularjs服务,它将通过socket.io使用WebSocket与后端(node.js)通信。我在网上找到了一段代码,但我不太明白它是如何工作的。特别是在“var args=arguments”下的行上。帮忙

angularjs_service.js

app.factory('socket', function ($rootScope) {
  var socket = io.connect();
  return {
    on: function (eventName, callback) {
      socket.on(eventName, function () {  
        var args = arguments;
        $rootScope.$apply(function () {
          callback.apply(socket, args);
        });
      });
    },
    emit: function (eventName, data, callback) {
      socket.emit(eventName, data, function () {
        var args = arguments;
        $rootScope.$apply(function () {
          if (callback) {
            callback.apply(socket, args);
          }
        });
      })
    }
  };
});

这就是javascript对未命名变量的厌恶。变量
arguments
引用传入函数的参数数组。您看到的是一个角度代码获取函数参数数组并将其传递给apply

function(myVar1, myVar2){
    console.log(arguments.length);
}
将输出
2


来源:

好的,谢谢。$rootScope.$apply(函数(){callback.apply(socket,args);})怎么样;这些线条在做什么?这个框架在angular网站上有很好的文档记录,因为它是一个angular特定的问题。如果这回答了您的问题,如果您接受,我将不胜感激!:D