Шаблон amp-усы не рендеринг
Я создал шаблон с усами, как показано ниже.
<template type="amp-mustache" id="amp-template-id">
<div>
<span>{{date}}</span>
<span>{{prev}}</span>
<span>{{open}}</span>
<span>{{low}}</span>
<span>{{high}}</span>
<span>{{last}}</span>
<span>{{vol}}</span>
</div>
</template>
Этот шаблон вложен в amp-list. У amp-list есть исходный URL (https и cross-origin), который отправляется ниже JSON.
{"date": "2018-08-03 14:40:09", "prev": 37165.16, "open": 37327.16, "low": 37319.61, "high": 37567.47, "last": 37557.93, "vol ": 0}
При загрузке страницы я ничего не вижу. В DOM я вижу только этот пустой div.
<div class="i-amphtml-fill-content i-amphtml-replaced-content" role="list"></div>
Я следовал примеру, упомянутому в этой ссылке. Я также пытался заменить переменные между тегами span на "date", ${{date}}, "prev", ${{prev}}, но ничего не получалось. Любая помощь в этом отношении будет высоко оценена.
РЕДАКТИРОВАТЬ: Добавление части кода amp-list
<amp-list src="https://api.myjson.com/bins/133uw8" width="auto" height="auto" layout="responsive">
<template type="amp-mustache" id="amp-template-id2">
{{date}}----{{prev}}----{{open}}----{{low}}----{{high}}----{{last}}----{{vol}}
</template>
</amp-list>
2 ответа
Проблема здесь width="auto" height="auto" layout="responsive"
Адаптивный макет требует ширины и высоты, потому что размер элемента соответствует ширине его элемента контейнера и автоматически изменяет его высоту до соотношения сторон, заданного атрибутами ширины и высоты.
Вот больше информации о том, какой макет использовать ширину и высоту Нажмите здесь
amp-list
Компоновка поддержки: заполнение, фиксированная, фиксированная высота, flex-item, nodisplay, отзывчивый
Json должен быть таким: Нажмите здесь
{
"items": [
{ "date": "2018-08-03 14:40:09", "prev": 37165.16, "open": 37327.16, "low": 37319.61, "high": 37567.47, "last": 37557.93, "vol": 0 }
]
}
<!--
## Introduction
The [`amp-list`](https://www.ampproject.org/docs/reference/components/amp-list) component fetches dynamic content from a CORS JSON endpoint and renders it using a supplied template. This is good for embedding a dynamic list of related articles.
-->
<!-- -->
<!doctype html>
<html ⚡>
<head>
<meta charset="utf-8">
<title>amp-list</title>
<script async src="https://cdn.ampproject.org/v0.js"></script>
<!-- ## Setup -->
<!-- Import the `amp-list` component ... -->
<script async custom-element="amp-list" src="https://cdn.ampproject.org/v0/amp-list-0.1.js"></script>
<!-- ... and the `amp-mustache` component in the header -->
<script async custom-template="amp-mustache" src="https://cdn.ampproject.org/v0/amp-mustache-0.1.js"></script>
<link rel="canonical" href="https://ampbyexample.com/components/amp-list/">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<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>
</head>
<body>
<amp-list src="https://api.myjson.com/bins/133uw8" width="300" height="500" layout="responsive">
<template type="amp-mustache" id="amp-template-id2">
{{date}}----{{prev}}----{{open}}----{{low}}----{{high}}----{{last}}----{{vol}}
</template>
</amp-list>
</body>
</html>
Главное, что выделяет меня, это ваш тип макета и размеры вашего списка усилителей. На самом деле я просто помещаю их во что-то, над чем я работал, и получаю сообщение об ошибке, говоря, что auto недопустимо для значения высоты. Это может быть, почему ничего не рендерится. Адаптивный тип ожидает ширину и высоту, и тогда он будет ограничивать пропорции при масштабировании.
Для списка усилителей может быть лучше использовать тип макета с фиксированной высотой или flex-item. Если вы используете любой из них, вы можете оставить свою ширину неопределенной, а затем вам просто нужно указать точную высоту.
Если вам нужен ваш динамический список, чтобы иметь несколько динамический рост, посмотрите ответ Себастьяна Бенца в этой теме.