Как передать данные json в шаблон метеора

Я пытаюсь передать данные из json rest API в шаблон метеора.

Я получаю JSON из HTTP GET следующим образом:

if (Meteor.is_client) {

    Meteor.http.call("GET", "https://public-api.wordpress.com/rest/v1/freshly-pressed", function (err, result){
        console.log(result.content);
    })
}

if (Meteor.is_server) {

}

и я вижу данные JSON в консоли браузера

как я могу передать данные в шаблон?


person Hugo    schedule 01.07.2014    source источник


Ответы (2)


Есть несколько способов, в зависимости от того, откуда вы звоните и какие пакеты используете. Самый простой — использовать сеанс и помощник:

HTTP.get(..., function(err, result) {
  Session.set('httpResult', result);
});

Template.myTemplate.json = function() {
  return Session.get('httpResult');
};


<template name="myTemplate">
  {{json.property}}
  {{#with json}}
    {{property}}
    {{otherProperty}}
    {{lotsOfProperties}}
  {{/with}}
</template>
person Hubert OG    schedule 02.07.2014
comment
спасибо @HubertOG, это не сработало, я могу получить любые данные по URL - person Hugo; 02.07.2014
comment
Это работает для отображения свойств объекта json, подобных этому, у вас может быть ошибка в другом месте @Hugo. - person kontur; 29.01.2015

Самый простой способ — сохранить результаты в переменной и использовать #with в своем шаблоне.

 Meteor.http.call("GET", "https://public-api.wordpress.com/rest/v1/freshly-pressed", function (err, result){
    my_json = result.content;
})

шаблон:

<template name="json_data">
   {{#with my_jason}}
      ...
   {{/with}}
person Erez Hochman    schedule 01.07.2014
comment
Спасибо @ErezHochman, но это не сработало, json хранится в переменной, но ничего не показывает в браузере. - person Hugo; 02.07.2014
comment
добавьте Session.get('init') в помощник my_json и Session.set('init',True) в обратный вызов http.call. Шаблон рисуется до того, как будет сделан http.call, и, поскольку это не реактивный шаблон, он не обновляется. вызов Session.get из шаблона привяжет этот сеанс как зависимость от шаблона (даже если вы ничего не делаете с данными, полученными из Session.get, достаточно его вызвать. - person Erez Hochman; 03.07.2014