2011-05-18 2 views

risposta

-1

Si sta tentando di chiamare una funzione come parte della vostra analisi del codice baffi? o generare output, che chiamerebbe la funzione JavaScript? per esempio. Ciò produrrebbe un codice HTML che chiamerebbe la funzione (credo).

{{#items}} 
    <script>{{funcName}}("{{url}}");</script> 
{{/items}} 
+1

Nella mia situazione ho questo vale a dire:

{{qualcosa}}

, come qualcosa è: var something = function() {return "a"}; quando rendo template la sua variabile chiamante è una funzione ... quindi ho "a" al posto di {{something}} ... ma ora ho bisogno di argomenti e questo è quello che sto cercando – sinisa

+14

Wow, questo è brutto. – ViniciusPires

+0

Se intendi inserire i tag '

48

controllare la sezione sul Lambda a http://mustache.github.com/mustache.5.html

Baffi modello di blocco:

{{#someFunction}}someValue{{/someFunction}} 

Blocco funzionale:

someFunction : function() { 
    return function(val, render) { 
    return "I passed in this value: " + render(val); 
    }; 
} 

uscita:

I passed in this value: someValue 
+0

Solo un avviso javascript, dopo il blocco funzione di ritorno, deve esserci un punto e virgola (;). Il pacchetto SublimeLinter di Sublime Text lo ha scelto. –

+3

Questo funzionerebbe solo se avessi cambiato la funzione signature in 'return function (val, render) {' – Evildonald

+1

chiarificando quanto sopra http://www.levihackwith.com/mustache-js-render-is-not-defined/ – AberZombie

2

Se si desidera che il contenuto dello script venga eseguito dopo che il markup è stato inserito nel dominio, è necessario utilizzare una libreria che faccia lo stesso come jquery.

Prova questa qui:

http://jsfiddle.net/anilkamath87/GBP8N/

Inoltre, se si desidera richiamare un altro metodo nel file di script. Tutto ciò che devi fare è chiamare la funzione in base allo scopo di tale funzione e se è stata precaricata nella dom.

Spero che questo aiuti.

PS: nota la fuga del tag script nel codice del modello

1

per me questo funziona:

aggiungere generale funzione FUNC per JSON (dati):

data.FUNC = function(){ 
       return function(val, render){ 
        var values = JSON.parse(render(val)); 
        return window[values.FUNCNAME].apply(this, values.FUNCARGS); 
       }; 
      }; 

javascript regolare pagina:

function foo(arg1, arg2){ 
    return "Arg1 is " + arg1 + " and Arg2 is " + arg2; 
}; 

Blocco modello di baffi che chiama il javascript- normale Funzione con tag-valori come argomenti:

{{#FUNC}}{"FUNCNAME":"foo", "FUNCARGS":["{{page}}","{{title}}"]}{{/FUNC}} 

è anche possibile chiamare una funzione definita nel JSON:

{{#calljsfunction}} {{#FUNC}}{"FUNCNAME":"{{calljsfunction}}", "FUNCARGS":["{{page}}","{{title}}"]}{{/FUNC}}{{/calljsfunction}}