Сценарий amp-date-countdown работает нормально, но не проверяет - PullRequest
0 голосов
/ 08 мая 2019

Я динамически устанавливаю оставшееся время в ампер-дата-обратный отсчет:

<amp-list width="auto"
            height="620"
            layout="fixed-height"
            src="/api/offer/******">
    <template type="amp-mustache" id="amp-template-id">
        <amp-animation id="hide-timeout-event" layout="nodisplay">
            <script type="application/json">
                {
                "duration": "0.01s",
                "fill": "both",
                "selector": "#ampdate",
                "keyframes": { "visibility": "hidden"}
                }
            </script>
        </amp-animation>
        <amp-date-countdown 
        id="ampdate"
            timeleft-ms="{{{time_left}}}"
            layout="fixed-height"
            height="150"
            on="timeout: hide-timeout-event.start, show-timeout-event.start"
            when-ended="stop">

            <template type="amp-mustache">
               {{{h}}} h {{`{{{m}}} m {{{s}}} s
            </template>

        </amp-date-countdown>
    </template>
</amp-list>

код работает абсолютно нормально, однако он не проверяется и выдает две ошибки:

Атрибут 'timeleft-ms' в теге 'amp-date-countdown' установлен на '{{{time_left}}}', который содержит синтаксис необработанного шаблона усов.

Тег 'template' может не отображаться как потомок тега 'template'.

Понятия не имею, что я делаю неправильно, поскольку все идет именно так, как ожидалось.

1 Ответ

1 голос
/ 09 мая 2019

Чтобы ответить на мой вопрос:

Перемещение шаблона за пределы списка усилителей и вызов его по идентификатору из amp-date-countdown. и избавился от первой ошибки. Второй был в равной степени простым. У amp-date-countdown нет причин принимать неэкранированный параметр. Простое изменение от {{{***}}} to {{***}} исправляет это. Следующий код работает и проверяет:

<template type="amp-mustache" id="timer">
    {{{h}}} h {{`{{{m}}} m {{{s}}} s
</template>
<amp-list width="auto"
            height="620"
            layout="fixed-height"
            src="/api/offer/******">
    <template type="amp-mustache" id="amp-template-id">
        <amp-animation id="hide-timeout-event" layout="nodisplay">
            <script type="application/json">
                {
                "duration": "0.01s",
                "fill": "both",
                "selector": "#ampdate",
                "keyframes": { "visibility": "hidden"}
                }
            </script>
        </amp-animation>
        <amp-date-countdown 
        id="ampdate"
            timeleft-ms="{{time_left}}"
            layout="fixed-height"
            height="150"
            on="timeout: hide-timeout-event.start, show-timeout-event.start"
            when-ended="stop"
            template="timer">
        </amp-date-countdown>
    </template>
</amp-list>

...