2017-07-10 3 views
1

Mon projet actuel est accessible ici: GitHubComment analyser et afficher des données JSON dans TVML fichier

Je suis en train de récupérer les données du fichier product.json dans mes productsTemplate.tvml (FunTV/templates). Comment utiliser la variable JS dans le fichier .TVML? Je cherche à itérer et afficher tout le nom du produit de product.json.

+0

Qu'avez-vous essayé jusqu'à présent? Pouvez-vous s'il vous plaît un exemple complet vérifiable minime. Notez que juste poster un lien vers un projet github n'est pas vraiment acceptable. Vous n'aurez besoin que de quelques validations supplémentaires pour que le code auquel vous faites référence soit enterré dans l'historique. – JeremyP

+0

Je demande simplement si certains d'entre vous ont déjà rencontré mon problème. J'ai aussi fait des recherches sur ce tutoriel: https://www.raywenderlich.com/145100/tvos-tutorial-using-tvml-templates, ils utilisent moustache.js – Danyl

Répondre

0

Vous avez donc votre fichier JSON comme ceci:

[ 
{"url": "your_image_url1", "title": "Your Title1"}, 
{"url": "your_image_url2", "title": "Your Title2"} ] 

Dans votre fichier javascript, vous faites une fonction appelée parseJSON:

function parseJson(information) { 
//push a loadingdocument (loadingTemplate()) onto the navigationstack 
var loadingDocument = loadingTemplate(); 
navigationDocument.pushDocument(loadingDocument); 
var result = JSON.parse(information); 
//make an empty string that fills with the image information in the loop 
var movies =""; 
//loop until you fill all your json files 
for(i = 0; i < result.length; i++) { 
    movies += '<lockup><img src="' + baseURL + result[i].url + '" /> 
<title>' + result[i].title + '</title></lockup>'; 
} 
// make a costum template with your images string movies. 
var template = '<document><stackTemplate><banner><title>JSON 
Shelf</title></banner><collectionList><shelf><section>' + movies + 
'</section></shelf></collectionList></stackTemplate></document>'; 
var templateParser = new DOMParser(); 
var parsedTemplate = templateParser.parseFromString(template, 
"application/xml"); 
//replace the loadingdocument with your parsedtemplate. done. 
navigationDocument.replaceDocument(parsedTemplate, loadingDocument); 
}