Mustache.js で引数を指定して関数を呼び出すことは可能ですか?
{{somefunction(somevalue)}}
http://mustache.github.com/mustache.5.html のLambdasのセクションをご覧ください
口ひげテンプレートブロック:
{{#someFunction}}someValue{{/someFunction}}
機能ブロック:
someFunction : function () {
return function(val, render) {
return "I passed in this value: " + render(val);
};
}
出力:
I passed in this value: someValue
マークアップがdomに挿入された後にスクリプトの内容を実行する場合は、jqueryのように同じことを行うライブラリを使用する必要があります。
ここでこれを試してください:
http://jsfiddle.net/anilkamath87/GBP8N/
また、スクリプトファイルで他のメソッドを呼び出す場合。必要なのは、その関数のスコープに応じて関数を呼び出すことと、それがdomにプリロードされているかどうかです。
お役に立てれば。
追伸:テンプレートマークアップのscriptタグのエスケープに注意してください
私にとってこれは動作します:
一般関数FUNCをjson(データ)に追加します。
data.FUNC = function(){
return function(val, render){
var values = JSON.parse(render(val));
return window[values.FUNCNAME].apply(this, values.FUNCARGS);
};
};
ページ上の通常のJavaScript:
function foo(arg1, arg2){
return "Arg1 is " + arg1 + " and Arg2 is " + arg2;
};
引数としてタグ値を使用して通常のjavascript-functionを呼び出すMustacheテンプレートブロック:
{{#FUNC}}{"FUNCNAME":"foo", "FUNCARGS":["{{page}}","{{title}}"]}{{/FUNC}}
jsonで定義された関数を呼び出すこともできます。
{{#calljsfunction}} {{#FUNC}}{"FUNCNAME":"{{calljsfunction}}", "FUNCARGS":["{{page}}","{{title}}"]}{{/FUNC}}{{/calljsfunction}}