Meteor - asynchrone Funktion an Lenkervorlage zurückgeben?

Ich versuche, eine Flickr-URL auf der Grundlage eines Flickr-API-Aufrufs zu generieren und dieses Ergebnis dann an die Vorlage "handlebars.js" zurückzugeben. Ich kämpfe darum, einen Weg um asynchrone Prozesse zu finden.

Ich habe versucht, eine Rückruffunktion zu erstellen, bin jedoch noch nicht sicher, wie ein definiertes Objekt oder eine definierte Variable in die HTML-Vorlage eingefügt werden soll.

Hier ist der Code für die Flickr-API-Funktion:

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();
    }
});};

Mein Vorlagencode lautet:

Template.backgroundImage.background = function(){
    FlickrRandomPhotoFromSet(setID,function(){
        return FlickrObject;
    });
};

Aber das lässt mich immer noch hängen und ich kann kein definiertes Objekt in mein HTML schreiben, das als solches codiert ist:

<template name="backgroundImage">
<div id="background">
    {{random}}
</div>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage