【问题标题】:jQuery template access array object memberjQuery模板访问数组对象成员
【发布时间】:2012-10-27 19:40:40
【问题描述】:

我正在寻找如何从看起来像这样的 JSON 结果访问 jQuery 模板项。

[
 {"appLayerId":"6002",
  "name":"US",
  "description":"test",
  "dataSource":"POINT",
  "status":{
      "status":"Success",
      "reason":"None",
      "otherInfo":null
      }
  }
 ]

我认为在模板中它只是${appLayerId},但这似乎不起作用。

-- 更新

如果有人帮助我,我正在尝试在 jsFiddle 上遵循此代码。 http://jsfiddle.net/iainjmitchell/kRRXC/ 与该示例的不同之处在于我在 jquery 模板部分中获取 JSON 和我的姓名的 URL。正如我在原帖中提到的那样,我的 json 在上面。就像我说的,我可以在 firebug 中看到 json 响应,并且没有页面错误,但我没有在模板中看到页面上的任何文本。希望这可以帮助有人帮助我。谢谢。

-- 更新 2

我显然在这里遗漏了一些简单的东西。您要求查看代码。就像我说的,它和那个例子完全一样。这是不同的地方。

twitterUrl: "http://localhost/Services.Administration/Maintenance.svc/layers?Fmt=application/json",

然后在模板部分我有这个div。

 <div class="source">
    <label>${name}, ${appLayerId}</label>
 </div>

当您说时,只需访问对象的属性即可。我可以做的对象是什么,模板中的 objectName.appLayerId。不太清楚你在说什么,抱歉。

希望这可以帮助您帮助我解决这个问题。感谢您的帮助。

-- 更新 3

进一步研究...我做了一个 console.dir(this.model);在 addAll 函数中。在萤火虫中,控制台将“模型”显示为空。为什么会这样?同样,我更改的只是该示例中的 URL。

           addAll: function(){
                var el = this.el;
                el.hide().empty();
                console.dir(this.model);
                this.model.each(function(tweet){
                    var view = new TweetView({model: tweet});
                    el.append(view.render().el);
                });
                el.slideDown(500);
            }  

【问题讨论】:

  • 我认为它是一个对象。它是通过使用主干的 Ajax 调用进入的。我可以在萤火虫中看到响应,所以我知道它正在通过。我想我只是没有正确访问这些值,不确定。我也试过 $[name] 认为可能会这样做,但没有。
  • 发布所有您正在使用但不起作用的相关代码。指向您尝试“关注”的示例的链接对任何人都没有任何好处。有效,你的无效

标签: jquery arrays json templates


【解决方案1】:

将对象的字符串表示形式放在变量中,您可以使用$.parseJSON() 将其转换为 js 对象,然后像往常一样使用它。

  var result = "[
 {'appLayerId':'6002',
  'name':'US',
  'description':'test',
  'dataSource':'POINT',
  'status':{
      'status':'Success',
      'reason':'None',
      'otherInfo':null
      }
  }
 ]";

 var resultObject = $.parseJSON(result);
 var subObject1 = resultObject[0];
 var appLayerId1 = subObject1.appLayerId;

希望对您有所帮助。

【讨论】:

  • 如果 JSON 是通过 jQuery AJAX 传入的,它就不是字符串,它已经是一个对象了……这看起来很混乱
  • 它是一个对象。它通过 Ajax 主干调用进入。也许我只是错过了一些简单的如何获得价值的东西,不确定。就像我说的 ${name} 似乎没有这样做。
  • 任何人的进一步帮助?
  • @charlietfl 如果它是一个对象,那么为什么不像对象一样简单地使用它的属性。
  • @BehnamEsmaili 这就是我的观点。不确定字符串在哪里输入到图片中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
相关资源
最近更新 更多