amp-mustache в amp-list не разрешает переменные усов при использовании в частичном html-файле усов

Я рендерил свою страницу усилителя с несколькими частичными файлами усов (верхний и нижний колонтитулы, карточки и т. Д.). В одном из своих разделов я хочу просмотреть цикл элементов, заданных в JSON, поэтому я использую список amp-list, в котором я использую шаблон amp-mustache. В результате я получаю список с пустым текстом. Переменные усов (url и title) не разрешаются в значения, указанные в JSON.

Мой частичный.html

<ul>
         <amp-list width="auto" height="100" layout="fixed-height" src="https://ampbyexample.com/json/examples.json" class="m1">
            <template type="amp-mustache" id="amp-template-id">
              <li><a href="{{url}}">Link - {{title}}</a></li>
            </template>
          </amp-list>
</ul>

и мои примеры.json

{
  "items": [
    {
      "title": "amp-carousel",
      "url": "/components/amp-carousel/"
    },
    {
      "title": "amp-img",
      "url": "/components/amp-img/"
    },
    {
      "title": "amp-ad",
      "url": "/components/amp-ad/"
    },
    {
      "title": "amp-accordion",
      "url": "/components/amp-accordion/"
    }
  ]
 }

и вот мой index.html

<!doctype html>
<html ⚡ lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
  <link rel="author" content="Uxmint" href=""/>
  <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
  <script async src="https://cdn.ampproject.org/v0.js"></script>
  <title>Example</title>
  <meta name="description" content="">
  <meta name="keywords" content="">
  <link rel="canonical" href="{{{projectUrl}}}" />
  <script async custom-element="amp-list" src="https://cdn.ampproject.org/v0/amp-list-0.1.js"></script>
  <script async custom-template="amp-mustache" src="https://cdn.ampproject.org/v0/amp-mustache-0.2.js"></script>
</head>
<body>

  {{> partial}}

</body>
</html>

1 ответ

Переменные усов уже отображаются на стороне сервера. Вы должны избежать их, чтобы они были доступны на стороне клиента. Например, для Handlebars.js вы можете экранировать переменную усов, поставив перед ними префикс \:

<amp-list width="auto" height="100" layout="fixed-height" src="https://ampbyexample.com/json/examples.json" class="m1">
            <template type="amp-mustache" id="amp-template-id">
              <li><a href="\{{url}}">Link - \{{title}}</a></li>
            </template>
          </amp-list>
Другие вопросы по тегам