Handlebars.js: {{this.url}} не работает в <img src="{{ this.url }}"> - PullRequest
0 голосов
/ 19 июня 2019

Handlebars.js не будет анализировать код, если я помещу его в / и т. Д. Как только он выходит на улицу, он работает нормально.

<script id="entry-template" type="text/x-handlebars-template">
    <div class="entry">
        {{#each this}}
        <h1>{{title.rendered}}</h1>
        <div>{{content.rendered}}</div>

        <img src="{{url}}" alt=""/>
        {{/each}}
    </div>
</script>

Я ожидал получить

<img src="http://localhost/image.jpg" alt=""/>

но результат был следующий:

<img src="{{url}}" alt=""/>

Кажется, все остальное работает. Цикл тоже.

1 Ответ

1 голос
/ 19 июня 2019

Использование

<script id="t" type="text/x-handlebars-template">
    <img class="someClass" src="{{url}}">
</script>

Шаблоны редко являются корректным и правильно сформированным HTML, поэтому вам нужно не позволяйте браузеру интерпретировать шаблон как HTML. Обычный Подход заключается в том, чтобы сохранить шаблон с типом, отличным от HTML:

Или используйте тройные скобки

<img src="{{{your source}}}" alt={{{your alt}}} />

Handlebars HTML-escapes values returned by a {{expression}}. If you don't want Handlebars to escape a value, use the "triple-stash",

{{{ {{{Foo}}}

Источник: http://handlebarsjs.com/expressions.html

Найдено по: https://github.com/wycats/handlebars-site/issues/28

...