Метеор - вернуть асинхронную функцию в шаблон руля?
Я пытаюсь сгенерировать URL-адрес Flickr на основе вызова API Flickr, а затем вернуть этот результат в шаблон handlebars.js. Я изо всех сил пытаюсь найти способ обойти асинхронные процессы.
Я пытался создать функцию обратного вызова, но я все еще не уверен, как получить определенный объект или переменную в шаблон HTML.
Вот код для функции Flickr API:
var FlickrRandomPhotoFromSet = function(setID,callback){
Meteor.http.call("GET","http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key="+apiKey+"&photoset_id="+setID+"&format=json&nojsoncallback=1",function (error, result) {
if (result.statusCode === 200)
var photoResult = JSON.parse(result.content);
var photoCount = photoResult.photoset.total;
var randomPhoto = Math.floor((Math.random()*photoCount)+1);
var selectedPhoto = photoResult.photoset.photo[randomPhoto];
var imageURL = "<img src=http://farm"+selectedPhoto.farm+".staticflickr.com/"+selectedPhoto.server+"/"+selectedPhoto.id+"_"+selectedPhoto.secret+"_b.jpg/>";
FlickrObject.random = imageURL;
}
if (callback && typeof(callback)==="function") {
callback();
}
});};
Мой код шаблона это:
Template.backgroundImage.background = function(){
FlickrRandomPhotoFromSet(setID,function(){
return FlickrObject;
});
};
Но это все еще оставляет меня в тупике, я не могу вставить определенный объект в мой HTML, который закодирован так:
<template name="backgroundImage">
<div id="background">
{{random}}
</div>