2016-04-20 10 views
0
<h1>Handlebars JS Example</h1> 
<script id="some-template" type="text/x-handlebars-template"> <table> 
    {{helper yes}} 
</script> 
var source = $("#some-template").html(); 
var template = Handlebars.compile(source); 

var data = { 
    yes:'Yes' 
}; 

Handlebars.registerHelper('helper', function(person) { 
console.log(person); 
console.log(data); 
console.log(data[person]); 
console.log(myFunction(person)); 
}); 
$('body').append(template(data)); 

function myFunction(keyname) { 
    return data[keyname]; 
}; 

Ich versuche, den Wert der Daten durch die Zeichenfolge, die ich vom Lenker bekommen. Lenker bekommen Objektwert am Helfer, ohne mit Daten zu kompilieren

Antwort

0

Jetzt fand ich wirklich Lösung, das Problem war, dass, wenn Vorlage kompiliert wird, wir Objekt wie in meinem Beispiel auf es setzen können. Aber ich musste es von Var holen und nach dem Namen suchen. Wenn ich Argumente wie oben verwende, sagt es immer noch, dass die Eigenschaft ja nicht gefunden werden kann. Ich fand here, dass wir als Argument String verwenden können. Und seine Arbeit, mein Code wird sauberer sein. jsFiddle

var source = $("#some-template").html(); 
var template = Handlebars.compile(source); 

var data = { 
    yes:'Yes' 
}; 

    <h1>Handlebars JS Example</h1> 
    <script id="some-template" type="text/x-handlebars-template"> 
     {{helper 'yes'}} 
    </script> 

    Handlebars.registerHelper('helper', function(person) { 
    return data[person]; 
    }); 
    $('body').append(template()); 
Verwandte Themen