Можно ли вызвать функцию с аргументами с Mustache.js <Предварительно > {{SomeFunction (SomeValue)}} спасибо
Вызов функции с аргументами в усах javascript
Ответ 1
Ознакомьтесь с разделом Lambdas на http://mustache.github.com/mustache.5.html
Блок шаблонов Mustache:
{{#someFunction}}someValue{{/someFunction}}
Функциональный блок:
someFunction : function () {
return function(val, render) {
return "I passed in this value: " + render(val);
};
}
Вывод:
I passed in this value: someValue
Ответ 2
Если вы хотите, чтобы содержимое script выполнялось после того, как разметка была вставлена в nito, вы должны использовать некоторую библиотеку, которая будет делать то же самое, что и jQuery.
Попробуйте здесь:
http://jsfiddle.net/anilkamath87/GBP8N/
Также, если вы хотите вызвать другой метод в вашем файле script. Все, что вам нужно сделать, это вызвать функцию в зависимости от области действия этой функции и если она была предварительно загружена в dom.
Надеюсь, что это поможет.
P.S: обратите внимание на побег тега script в разметке шаблона
Ответ 3
для меня это работает:
добавить общую функцию 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;
};
Блок шаблонов Mustache, вызывающий обычную javascript-функцию с тегами-значениями в качестве аргументов:
{{#FUNC}}{"FUNCNAME":"foo", "FUNCARGS":["{{page}}","{{title}}"]}{{/FUNC}}
вы также можете вызвать функцию, определенную в json:
{{#calljsfunction}}
{{#FUNC}}{"FUNCNAME":"{{calljsfunction}}", "FUNCARGS":["{{page}}","{{title}}"]}{{/FUNC}}{{/calljsfunction}}
Ответ 4
Вы пытаетесь вызвать функцию как часть анализа синтаксического кода? или генерировать вывод, который вызовет функцию JavaScript? например Это приведет к выводу HTML, который вызовет функцию (я считаю).
{{#items}}
<script>{{funcName}}("{{url}}");</script>
{{/items}}