多维数组和 jQuery 的 getJSON

2023-12-09

我向应用程序中的控制器提交了 getJSON 请求,该控制器返回带有 2 个“应用程序”的有效 JSON。我知道这一点,就好像我将警报语句移动到 jQuery 的每个函数中一样,它会给我预期的结果。

我试图将此数据存储在多维数组中,以便稍后与 extJS 的菜单控件一起使用。

Code:

Ext.onReady(function() {
    var applicationList = [];
    jQuery.getJSON('index.php/applications', function(data) {
        jQuery.each(data.applications, function (i, app) {
            applicationList[i] = [];
            applicationList[i]['text'] = app['title'];
            applicationList[i]['id'] = app['slug'];
        });
    });
    alert(applicationList[0]['text']);

    var applicationMenu = Ext.menu.Menu({
        items: applicationList
    });
});

JSON 响应:

{"applications":[{"slug":"test","title":"Test"},{"slug":"hardware","title":"Hardware"}]}

预期结果:

Test

实际结果(来自 Firebug):

applicationList[0] 未定义

如果我更换alert()上面,使用以下代码,我得到一个带有文本“remove”的警报窗口:

for (p in applicationList) {
    alert(p);
}

现在,我的想法是 JSON 请求没有及时完成alert()所以我将使用命名回调函数来确保请求已完成:

var data;
jQuery.getJSON('index.php/applications', get_applications(data));

function get_applications(data) {
    jQuery.each(data.applications, function (i, app) {
        applicationList[i] = [];
        applicationList[i]['text'] = app['title'];
        applicationList[i]['id'] = app['slug'];
    });
};

但现在 Firebug 告诉我data is undefined...

我觉得我已经快到了,但在过去的一个小时里我已经快到了,我觉得我现在只是在污染源头,试图让它发挥作用。


这应该可以做到:

Ext.onReady(function() {
    var applicationList = [];
    var applicationMenu;

    jQuery.getJSON('index.php/applications', function(data) {
        jQuery.each(data.applications, function (i, app) {
                applicationList[i] = [];
                applicationList[i]['text'] = app['title'];
                applicationList[i]['id'] = app['slug'];
        });

        applicationMenu = Ext.menu.Menu({
            items: applicationList
        });
    });
});

你的想法是对的;它不起作用的原因是因为 AJAX 是一个异步过程,当您触发 getJSON 函数时,javascript 会继续运行。您的解决方案不起作用,因为将其设为命名回调并不会改变在您尝试初始化菜单之前不会触发它的事实。我的所有解决方案所做的就是将菜单初始化代码移至回调内部,因为只有那时您才能访问填写的应用程序列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多维数组和 jQuery 的 getJSON 的相关文章

  • json.net自定义jobject反序列化

    我正在尝试使用 JsonConvert DeserializeObject string 将字符串反序列化为可与动态一起使用的 jobject 来动态访问 json 文档 但是我想避免知道文档的大小写 以便我可以输入 dynamic doc
  • 仅从功能区打开一个对话框

    我有一个带有登录按钮的功能区 可打开登录对话框 我想将对话框的数量限制为一个 我正在使用函数 displayDialogAsync startAddress options callback https learn microsoft co
  • Twitch API - 无法使用 PHP 获取身份验证令牌

    stackoverflow 的成员们大家好 我不是一个喜欢寻求帮助的人 但在这种情况下 我认为这是解决我的问题的唯一方法 谷歌并没有给我太大帮助 所以 我的问题 我想使用 Twitch API 获取一些数据 听起来很容易 我希望是这样 下面
  • 插件 gulp-babel 错误:插件/预设文件不允许导出对象,只能导出函数

    我现在尝试在我的 Ionic v1 应用程序中使用 JavaScript 2015 ES6 包 json name test version 1 0 0 dependencies ionic native deeplinks 4 18 0
  • 修复 Raphaël 路径节点上 Tipsy 工具提示的位置

    这是一个非常具体且有些复杂的问题 所以我设置了一个最小测试用例 http reveal dk 8080 revealit dk tipsytest 在阅读本文的其余部分之前 您可能应该先了解一下 我的页面显示悬停时突出显示区域的图像Raph
  • 公开闭包内的方法

    当我们在闭包内创建一个方法时 该方法将成为该闭包的私有方法 并且在我们以某种方式公开它之前无法访问它 怎么可能暴露呢 您可以返回对它的引用 var a function var b function I m private alert go
  • 如何将React JS状态保存到本地存储中

    我不知道如何将 React js 状态存储到本地存储中 import React Component from react import App css import auth createUserProfileDocument from
  • 基于范围内变量的角度设置形式动作

    我一直在尝试设置一个搜索表单 可以在其中注入表单操作属性 在我的表格中我有
  • 无法从 JQuery ajax 调用接收 JSON

    我已经确定来自服务器的 JSON 是有效的 手动进行 ajax 调用 但我真的很想使用 JQuery 我还使用 firebug 确定发送到服务器的 post URL 是正确的 但是 错误回调仍然被触发 解析错误 我还尝试了数据类型 文本 我
  • JS:修改 JS 对象中的值/对

    我正在尝试找出修改对象的最佳方法 而无需三次写出类似的对象 所以我有这三个对象 var object1 start start end end type 1 var object2 start start end end type 2 va
  • 基本 jQuery 动画:省略号(三个点依次出现)

    我需要的 我需要一个动画省略号 一个点一个接一个地出现 动画需要循环播放 我想通过 jQuery 实现这一点 动画序列 Frame 1 等待您的选择 Frame 2 等待您的选择 Frame 3 等待您的选择 Frame 4 等待您的选择
  • jQuery DataTables:隐藏最后一行的“删除”按钮

    我有一个DataTable在某些情况下可以返回多个页面 返回的每一行都显示一个删除按钮 但我需要它在返回的最后一行上隐藏此按钮 无论是 1 pg 还是多个 因此不能在其中使用 CSS 我想学习如何实现这一点 因为DataTables对我来说
  • 获取类中的所有静态 getter

    假设我有这个类 我像枚举一样使用它 class Color static get Red return 0 static get Black return 1 有没有类似的东西Object keys to get Red Black 我使用
  • 测试 jQueryUI 是否已加载

    我正在尝试调试网站 并且我认为 jQueryUI 可能未正确加载 如何测试 jQueryUI 是否已加载 if jQuery ui UI loaded OR if typeof jQuery ui undefined UI loaded 应
  • Jackson 反序列化相当于 @JsonUnwrapped 吗?

    假设我有以下课程 public class Parent public int age JsonUnwrapped public Name name 生成 JSON age 18 first Joey last Sixpack 我如何将其反
  • 从json中获取所有子节点

    我有以下 json var source k 01 k 02 children k 05 k 06 children k ABC k PQR k 07 k 03 我希望能够指定 k 的值并取回所有孩子 以及孙
  • 使用严格模式编译指示时如何声明全局变量

    使用自调用函数来包装严格模式兼容代码 通常称为严格模式编译指示 被认为是一种很好的做法 function use strict Strict code here 我的问题是在这种情况下如何声明全局变量 我今天知道的三种替代方案 替代方案 1
  • YouTube 点击时禁用 HTML5

    有没有办法让我们通过javascript禁用HTML5视频的 播放 暂停 点击全屏 功能 然后在我们再次需要时将其放回去 我不知道你是否可以禁用它们 但你可以使用 css 删除它们 video webkit media controls f
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效
  • jQuery appendTo(), json 在 IE 6,7,8 中不起作用

    我这两天绞尽脑汁想找到解决办法 我使用 jQuery ajax 从数据库中获取值 以便在另一个框发生更改时更新一个框 php 脚本从数据库中获取值 然后输出 json 它在 FF 中工作正常 但在所有版本的 IE 中 选择框都不会更新 我已

随机推荐

  • gethostbyaddr 在 Windows 上可以,但在 Linux 上返回 NULL

    这段代码在 Windows 上运行正常 但在 Linux 上 gethostbyaddr 返回 NULL 我尝试了很多改变 但没有成功 我的 etc host conf 有以下行 订购主机 绑定 我运行完整的代码并传递地址 11 234 4
  • C 中的多处理和管道

    我正在努力学习如何与fork 创建新流程并pipes与每个进程进行通信 假设我有一个包含 20 个单词的列表 并且创建了 3 个进程 现在 我需要使用管道在进程之间分发单词 每个进程都会对其接收到的单词列表进行排序 我想要实现这一目标的方式
  • 静态 Azure 托管中的子文件夹

    我想使用 Azure blob 文件存储来托管静态网站 如果 html 页面位于 web storage 的根文件夹中 则效果很好 但是 如果我将网页放入子文件夹中 相对链接 例如 css 文件 将不再起作用 因为它们被解释为基于根的链接
  • 处理球衣的多重异常

    我们该如何处理MultiException包含 Throwable 对象列表的球衣 异常映射器技术在一个异常的情况下工作得很好 但如何处理多个异常呢 您可以通过对 MultiException 调用 getErrors 来获取异常列表 Mu
  • Appium 仅在 Cordova 应用程序上显示 NATIVE_APP 上下文

    我在 Windows 上运行 Appium 以直接在 Android 设备上测试 Cordova 应用程序 但是 当我尝试获取上下文并切换到包含的上下文时WEBVIEW 基本上 推荐的过程 它只返回一个上下文 NATIVE APP 当我使用
  • 如何在 C# 中读取 .wav 文件的比特率

    鉴于我有一个 wav 文件 在 C 中读取其比特率属性的最佳方法是什么 我尝试过Shell 并提出了一个问题 比特率 属性是否固定在索引 28 中 没有答案所以 另外 我现在相信 Shell 不是读取音频文件属性的最佳方法 我研究了不同的开
  • 如何使用 linkRadial 绘制两点之间的链接?

    我需要手动绘制圆上的点和聚集在该圆中心的点之间的一些链接 我有源点和目标点的 x y 对 但我不想要它们之间有一条简单的直线 我想要一条曲线 类似于树形图中的链接 我可以用linkHorizontal or linkVertical但它们的
  • 同一 Solr Core 中的多个索引..?

    我正在使用 Apache Solr 我有以下场景 我的 PostGreSQL 数据库中有两个表 其一是 Cars 其他的是 Dealers 现在我有一个数据配置文件Cars像下面这样
  • 大虾PDF:我需要生成嵌套表格

    我需要一个表 其中行实际上是 2 行表 这是一个嵌套表 我怎样才能在虾中做到这一点 也许我需要延期 但是哪一个 现在支持子表 Prawn Document generate subtable pdf do pdf subtable pdf
  • 我们可以在经典 ASP 中创建线程吗?

    我的简单问题是 我们可以在经典 ASP 中创建线程吗 如果是的话怎么办 请帮忙 VBScript 中没有允许您生成新线程的本机方法 另一方面 您可以调用用其他语言 例如 C 编写的多线程 COM 组件
  • 导入错误:没有名为“selenium”的模块

    我正在尝试编写一个脚本来检查网站 这是我第一次使用硒 我正在尝试在 OSX 系统上运行该脚本 虽然我签入了 Library Python 2 7 site packages 并且存在 selenium 2 46 0 py2 7 egg 但当
  • 当我将普通页面重定向到 AMP 页面时出现 500 内部服务器错误 htaccess 错误

    这是我的重定向 AMP 页面的正常页面代码 正常的页面url是https www themobilesapp com Nokia Lumia 638 specifications 3029 这工作正常 但 AMP 页面网
  • 使用 C# 更新 Facebook 状态

    我的桌面应用程序应该更新我的 Facebook 状态 是否有一个 API 允许使用登录名和密码更新状态 预先感谢您的回答 当然有 Net Facebook 工具包它是由 Microsoft 的第 3 方完成的 然后在 CodePlex 上作
  • mysqli 多个查询 - 设置变量产生布尔错误/如何跳过这个?

    得到以下简单的查询 该查询通过 phpmyadmin 可以正常工作 但是当我将其添加到我的 php 网站时 没有返回结果 也没有错误 警告消息 如果我删除 SET N 1 然后就可以正常工作了
  • 将特定文件从多个子目录复制到 R 中的单个文件夹中

    假设我有 3 个文件夹 每个文件夹中都有大量文件 我只想从每个子目录中选择几个文件 然后仅将这些文件粘贴到新文件夹中 让我们调用这 3 个文件夹 桌面 目录 sub 11s gi01 ab 桌面 目录 sub 11f gi01 b 桌面 目
  • 修改悬停时的线条/工具提示

    我正在使用 D3 js 我正在尝试做两件事 在悬停线条时 我想对线条应用样式 颜色为浅蓝色或其他颜色 它可以转到父节点 或最高级别的父节点 任何一个都会对我有很大帮助 如果您知道如何做到这两点 请分享 将鼠标悬停在每个节点的文本上时 我想显
  • cin 输入(输入是 int)当我输入一个字母时,它不会打印一次错误的内容,而是打印一次正确的内容,然后在循环的其余部分中打印

    我正在制作一个乘法练习程序 正如我的标题所示 如果我在控制台中输入一个字母而不是数字 它将显示第一个字母正确 但其余字母错误 即使你不碰键盘 它仍然会输出不正确的结果 ans table i std cout lt lt table lt
  • Web Api 中的 HttpClient 非常慢

    我正在使用 ASP NET WebApi ApiController 为我的应用程序实现代理 并使用 HttpClient 通过我的授权标头发出请求 它工作得很好 但速度非常慢 下面是主要代码 然后是全局初始化 使用DefaultConne
  • 嵌套异常是java.lang.NoClassDefFoundError:无法初始化类org.hibernate.validator.internal.engine.ConfigurationImpl

    public ModelAndView Details ModelAttribute Validated App app BindingResult result RequestParam value paramSessionAttr re
  • 多维数组和 jQuery 的 getJSON

    我向应用程序中的控制器提交了 getJSON 请求 该控制器返回带有 2 个 应用程序 的有效 JSON 我知道这一点 就好像我将警报语句移动到 jQuery 的每个函数中一样 它会给我预期的结果 我试图将此数据存储在多维数组中 以便稍后与