Est-il possible d'appeler une fonction avec des arguments avec Moustache.js
{{somefunction (somevalue)}}Je vous remercie
Consultez la section sur Lambdas à http://mustache.github.com/mustache.5.html
Bloc de modèle de moustache:
{{#someFunction}}someValue{{/someFunction}}
Bloc fonction:
someFunction : function () {
return function(val, render) {
return "I passed in this value: " + render(val);
};
}
Sortie:
I passed in this value: someValue
Si vous voulez que le contenu du script soit exécuté après que le balisage ait été inséré, vous devez utiliser une bibliothèque qui fera la même chose que jquery.
Essayez ceci ici:
http://jsfiddle.net/anilkamath87/GBP8N/
Aussi, si vous souhaitez invoquer une autre méthode dans votre fichier de script. Tout ce que vous avez à faire est d'appeler la fonction en fonction de son étendue et si elle a été préchargée dans le dom.
J'espère que cela t'aides.
P.S: notez l'échappement de la balise script dans le balisage du modèle
pour moi cela fonctionne:
ajouter la fonction générale FUNC à json (données):
data.FUNC = function(){
return function(val, render){
var values = JSON.parse(render(val));
return window[values.FUNCNAME].apply(this, values.FUNCARGS);
};
};
javascript classique sur la page:
function foo(arg1, arg2){
return "Arg1 is " + arg1 + " and Arg2 is " + arg2;
};
Le bloc de modèle Mustache appelle la fonction javascript normale avec les valeurs de balise comme arguments:
{{#FUNC}}{"FUNCNAME":"foo", "FUNCARGS":["{{page}}","{{title}}"]}{{/FUNC}}
vous pouvez aussi appeler une fonction définie dans le json:
{{#calljsfunction}}
{{#FUNC}}{"FUNCNAME":"{{calljsfunction}}", "FUNCARGS":["{{page}}","{{title}}"]}{{/FUNC}}{{/calljsfunction}}