Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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
Javascript 使用apply向服务器发送多个参数_Javascript_Angularjs_Function_Signalr - Fatal编程技术网

Javascript 使用apply向服务器发送多个参数

Javascript 使用apply向服务器发送多个参数,javascript,angularjs,function,signalr,Javascript,Angularjs,Function,Signalr,我正在angular中开发一个javascript客户端,它使用信号器与后端服务器通信。基本思想是,您可以从客户端对服务器进行远程过程调用,反之亦然。我对调用不带参数的服务器方法有一个适当的抽象,如下所示: myInvoke: function (methodName, callback) { proxy.invoke(methodName) .done(function (result) { $ro

我正在angular中开发一个javascript客户端,它使用信号器与后端服务器通信。基本思想是,您可以从客户端对服务器进行远程过程调用,反之亦然。我对调用不带参数的服务器方法有一个适当的抽象,如下所示:

myInvoke: function (methodName, callback) {
            proxy.invoke(methodName)
                .done(function (result) {
                    $rootScope.$apply(function () {
                        if (callback) {
                            callback(result);
                        }
                    });
                });
        }
重要的部分是
proxy.invoke(methodName)
,它将要调用的服务器方法的名称作为字符串

代理还允许传递多个要调用的参数。以下是一些例子:

我想完成的是类似于这样的事情,其中args是应该转发到集线器的任意数量的参数:

myInvoke: function (methodName, args, callback) {
            proxy.invoke(methodName, args)...

我一直在读apply方法,但是我的javascript非常弱,我还没有找到一个有效的实现

忽略我之前的评论。我看错了你的信号员文件。基本上我假设你总是可以传递一个对象参数。看起来你确实可以通过这样做来完成你想要的

有关如何使用apply将参数从当前函数传递到invoke函数的信息,请参见此jsbin


args只是一个JS对象,因此传入一个对象并默认为空对象,您就应该开始工作了。您需要使用apply的唯一原因是,如果您想传递一些默认参数集。@GordonBockus如果我将10个参数传递到invoke中,我不明白这将如何工作。它如何知道如何处理所有这些代码呢?他们必须对代码进行一些小的更改才能使其正常工作。回调不需要是args的一部分,因为它不需要传递到signar服务器,它用于对RPC调用返回的值进行操作。此外,我还必须使用apply(proxy,args)而不是(null,args),但在这之后,它会执行我想要的操作!非常感谢:)
myInvoke: function (methodName, args, callback) {
            proxy.invoke(methodName, args)...