如何从外部json源编译handlebarsjs?

时间:2013-10-03 18:55:48

标签: javascript jquery json handlebars.js

请看这个链接:http://jsfiddle.net/dASav/ 这是工作。 我使用内部JSON数据,代码如下。

  var data = { blogsTags: [
  {
    "tag": "GovernorBentley",
    "separation_path": "/blogs/byTag/GovernorBentley.html"
  },
  {
    "tag": "Huntsville",
    "separation_path": "/blogs/byTag/Huntsville.html"
  },
  {
    "tag": "Voting Rights",
    "separation_path": "/blogs/byTag/Voting Rights.html"
  }
    ]};

但我想要来自外部课程的JSON数据。 JSON数据链接是:http://json.virtuecenter.com/json-data/blogs/tags 我怎样才能做到这一点?请帮帮我。

1 个答案:

答案 0 :(得分:0)

您应该使用jQuery.getJSON(),以便从外部网址获取json。

  

描述:使用GET HTTP从服务器加载JSON编码的数据   请求。

这里没有与把手有任何关系。

一个简短的例子

$.getJSON( "http://json.virtuecenter.com/json-data/blogs/tags", function( json ) {
  //Handle it
 });

更新

jQuery.getJSON() 是jQuery中强烈推荐的从外部URL获取json的方法。

那么如何使用呢?

$.getJSON( "http://json.virtuecenter.com/json-data/blogs/tags?callback=?", function( json ) {
io (json);    //I have used method call for passing parameter
 });

不要忘记添加 ?callback=? ,这将有助于克服CORS(跨源资源共享)

然后你最后的代码

function io (data) {
  var template = document.getElementById("movies-tmp").innerHTML;
var templateCompile = Handlebars.compile(template);
var result = templateCompile(data);
document.body.insertAdjacentHTML("beforeend", result);
}

这是JSFiddle

希望你明白。