2014-06-20 4 views
0

J'ai besoin de modèles de guidons en javascript. Je crée le fichier modèle dans le dossier tpl et a écrit cette ligne dans xmlRessources Web de javascript

<resource type="download" name="tpl/" location="/tpl"/> 

si je mets un peu l'image dans ce dossier que je peux pour obtenir de css

.css 
{ 
background: url(tpl/image.png); 
} 

si je veux obtenir ce image de js AJS.$("css").css("background", "url(tpl/image.png)") J'ai l'erreur - fichier introuvable;

fichier image est par exemple .. Dans la vraie, je dois obtenir modèle

AJS.$.ajax({ 
        url: "tpl/backlog_coll.handlebars", 
        cache: true, 
        success: function(data) { 
         source = data; 
         template = Handlebars.compile(source); 
         $('#backlog_coll').html(template); 
        } 
       }); 

Répondre

0

Voici comment je le ferais

je vais écrire une fonction dans un fichier généralement accessible (permet de l'appeler Global.js pour le moment) comme indiqué ci-dessous

GLOBAL.JS

function fnGetTemplate(strName) { 
if (Handlebars.templates === undefined || Handlebars.templates[strName] === undefined) { 
$.ajax({ 
    url : "tpl" + strName + ".handlebars", 
    success : function(data) { 
     if (Handlebars.templates === undefined) { 
      Handlebars.templates = {}; 
     } 
     Handlebars.templates[strName] = Handlebars.compile(data); 
    }, 
    async : false 
}); 
} 
return Handlebars.templates[strName]; 
} 

C'est assumin g J'ai la bibliothèque de guidons js (quelque chose comme handlebars-v1.3.0.js) référée de manière appropriée.

Puis dans la vue où j'ai besoin du modèle pour montrer, je déclarerais le modèle comme indiqué ci-dessous

template: fnGetTemplate("backlog_coll"); 

l'intérieur de la rendre fonction de mon avis, je qualifierais ce modèle fournissant les données nécessaires comme le montrent ci-dessous

render: function() { 
    this.$el.html(this.template(data)); 
} 

Hope this helps

+0

cette méthode ne pas trouvé trop de modèles. il devrait être comme '/jira/s/ru_RU-g6ghuq/773/3/1.0-SNAPSHOT/_/download/resources/com.swan.agile.swan-agile:swan-agile-scrumboard/tpl/" + strName + ".handlebars' – waldemar

+0

En fait, dans l'exemple, j'ai codé en dur le chemin "tpl" juste pour faciliter l'explication. En réalité, vous devriez l'extraire en tant que valeur de variable afin de pouvoir remplir dynamiquement le chemin de ce modèle, comme illustré ci-dessous. function fnGetTemplate (strPath, strName) { if (Handlebars.templates === undefined || Handlebars.templates [strName] === non défini) { $ .ajax ({ url: strPath + strName + ".handlebars", et l'appeler comme modèle: fnGetTemplate (strPath, strName); – eshcol

Questions connexes