Я пытаюсь получить доступ к вложенному объекту в функции lamda. Объект выглядит примерно так:
{
foo: function(){
return {
'bar': "success"
}
}
}
когда я пытаюсь получить к нему доступ с помощью {{foo.bar}}
, возвращается пустая строка. Если я оберну его {{#foo}}{{bar}}{{/foo}}
, это сработает. Это намеренно? Есть ли способ сделать первое заявление работать? Шаблоны уже используются для mustache.php, и я пытаюсь заставить их работать и во внешнем интерфейсе.
Вот рабочая демонстрация проблемы:
var obj = {
foo: function(){
return {
'bar': "success"
}
}
};
var source = document.getElementById("template").innerHTML;
var template = Handlebars.compile(source);
document.getElementById("output").innerHTML = template(obj);
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.11/handlebars.js"></script>
<script id="template" type="text/x-handlebars-template">
nested: {{#foo}}{{bar}}{{/foo}} <br/>
dot notation: {{foo.bar}}
</script>
<div id="output"></div>