Как скомпилировать handlebarsjs из внешнего источника json?

0

См. Эту ссылку: 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, как я могу это сделать? пожалуйста помогите.

Теги:
handlebars.js

1 ответ

0
Лучший ответ

Вы должны использовать jQuery.getJSON(), inorder для извлечения json из внешнего url.

Описание: Загрузка JSON-кодированных данных с сервера с использованием запроса GET HTTP.

Здесь нет ничего общего с Handlebars.

Краткий пример

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

Обновления:

jQuery.getJSON() - очень рекомендуемый метод в jQuery для извлечения json из внешнего url.

Итак, как с этим работать?

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

Не забудьте добавить ?callback=? , это поможет преодолеть CORS (совместное использование ресурсов Cross-Origin)

Тогда вы окончательный код

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

Надеюсь ты понимаешь.

  • 0
    спасибо за ваш ответ, не могли бы вы объяснить мне более подробно? на самом деле, каким будет новый код, вместо этого var data = {blogsTags: [{"tag": "GovernorBentley", "paration_path ":" /blogs/byTag/GovernorBentley.html "}]}; var template = document.getElementById ("movies-tmp"). innerHTML; var templateCompile = Handlebars.compile (template); var result = templateCompile (data); document.body.insertAdjacentHTML ("beforeend", результат);
  • 0
    @Rousnay Я добавил больше объяснений, надеюсь, это полезно. Однако извините за поздний ответ
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню