handlebar.js доступ к объектам в лямбда-функции - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь получить доступ к вложенному объекту в функции 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>
...