Подтвердить что ты не робот

Вызов функции с аргументами в усах javascript

Можно ли вызвать функцию с аргументами с Mustache.js <Предварительно > {{SomeFunction (SomeValue)}} спасибо

4b9b3361

Ответ 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}}