javascript - 将数组传递给 Javascript 函数

标签 javascript jquery ajax

我正在使用 Web 服务来填充选择列表,现在我需要对多个选择列表执行相同的操作,最好使用相同的方法来尝试限制代码量。这是我用来调用 Web 服务的方法:

function GetColourReferences(self) {
    $.ajax({
        async: false,
        cache: false,
        type: 'GET',
        url: '/GetColourReferences',
        success: function (data) {
            self.colourReferences(data);
        }
    });
}

我尝试过类似于以下内容的方法,但我无法让它工作 - 这可能吗?

function GetReferences(self, list, refUrl) {
    $.ajax({
        async: false,
        cache: false,
        type: 'GET',
        url: refUrl,
        success: function (data) {
            list(data);
        }
    });
}

我是这样调用它的(我使用的是 Knockout):

GetReferences(self, self.colourReferences, '/GetColourReferences');

感谢您的浏览:)

最佳答案

1)老兄,无论你有什么借口,都要听听其他人的提示,永远不要使用同步调用,特别是如果你的后端处理速度很慢或者你有一些困惑的用户界面要求。

2)整理你的闭包并学习如何确定对象方法的范围,你将解决你的问题,但我会很好地为你指出正确的方向。

3)这不起作用,只是因为您传递了对函数的引用,而不是对对象方法的引用,所以巧妙地称为 self (WTF 你听说过语义吗)那个旁白列表是失去了对象范围,这就是问题所在!

function GetReferences(self, list, refUrl) {
    $.ajax({
        async: false,
        cache: false,
        type: 'GET',
        url: refUrl,
        success: function (data) {
            list.call(self, data);
        }
    });
}

希望有所帮助。

关于javascript - 将数组传递给 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14791477/

相关文章:

javascript - 如何在 React 中动态读取通过 Netlify CMS 创建的 Markdown 文件的特定部分?

javascript - AngularJS 异步指令编译

javascript - 循环 html 表并检查是否选择了 radio

javascript - HTML5 地理位置地址表单填充程序未捕获语法错误 : Unexpected token <

ajax - 从 JQuery 向 Web API 进行 POST 时出现问题

javascript - D3 - 属性 d : Expected number Error in creating curved chart

javascript - 如何使模式内的图像可点击

javascript - node、sql 和 jquery -> 注册表单 - 访问服务器上的数据

jquery - 下拉菜单 - IE7 上的 Jquery 问题

javascript - PHP 获取按钮 $_POST 单击时的值