1

我正在寻找如何从看起来像这样的 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);
            }  
4

1 回答 1

0

将对象的字符串表示形式放在变量中,您可以使用$.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;

希望这有帮助。

于 2012-10-27T20:01:41.723 回答