javascript - 使用 apply 将多个参数发送到服务器

标签 javascript angularjs function signalr

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

myInvoke: function (methodName, callback) {
            proxy.invoke(methodName)
                .done(function (result) {
                    $rootScope.$apply(function () {
                        if (callback) {
                            callback(result);
                        }
                    });
                });
        }

重要的部分是proxy.invoke(methodName),它将要调用的服务器方法的名称作为字符串。

代理还允许传递多个参数来调用。来自 SignalR documentation 的一些示例:

// one parameter 
contosoChatHubProxy.invoke('newContosoChatMessage', { UserName: userName, Message: message}) ...

// two parameters
contosoChatHubProxy.invoke('NewContosoChatMessage', userName, message) ...

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

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

我一直在阅读有关 apply 方法的内容,但我的 javascript 非常弱,而且我无法想出一个可行的实现。

最佳答案

忽略我之前的评论。我误读了您包含的 SignalR 文档。基本上我假设你总是可以传递单个对象参数。看起来你确实可以通过这样做来完成你想要的事情

请参阅此 jsbin,了解如何使用 apply 将参数从当前函数传递到调用函数。

http://jsbin.com/juqanigulo/1/edit?html,js,console,output

关于javascript - 使用 apply 将多个参数发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26637329/

相关文章:

javascript - 在html5网页中附加电子邮件中的文件

javascript - 无法解析 getElementById 中的字符串

javascript - 将值插入模板 AngularJS

html - 当文本区域脏时更改按钮

c++ - 在 C++ 中通过引用传递数组

javascript - 如何在java脚本中单击后将带有<i>元素的<li>元素添加到<ul>

javascript - 从嵌套的 ng-repeat 绑定(bind)的 Angular ng-model

javascript - Sequelize 为 LIKE 添加额外的引号

javascript - 使用 Angular js 在表中按日期排序

r - 对列应用函数,结果不会根据函数的结果替换列值