Как применить логический оператор в скрипте google amp?

Что касается Google AMP, у меня есть следующий код:

<a [href]="'?view=amp&constraint=' + selectedOption1 + '&sort_by=' + selectedSorting"> Submit </a>

Я хотел бы отображать '?view=amp&constraint=' только в том случае, если значение selectedOption1 существует.

Как я могу добиться того же?

Я пробовал следующее:

<a [href]="'?view=amp&amp;constraint=' + (selectedOption1 || '') + '&amp;sort_by=' + (selectedSorting || '')" > </a>

person Arpan Jain    schedule 30.04.2020    source источник


Ответы (1)


Вы должны выполнить операцию условия для selectedOption1. Вот общий для справки пример с двумя кнопками, которые изменят состояние selectedOption1 и, соответственно, вы можете проверить значение href тега привязки, а для быстрого просмотра я использовал тег абзаца, чтобы отобразить то же значение, что и href в абзаце. Надеюсь, что это поможет вам.

Чтобы запустить этот код, скопируйте весь код и замените его основной частью на здесь AMP-площадка, просто убедитесь, что вы импортировали amp-bind js на страницу с примером amp-площадки.

<p [text]="selectedOption1 ? 'https://www.example.com?view=amp&constraint=' + selectedOption1 + '&sort_by=' + selectedSorting : 'www.example.com'">

</p>
  <a href="#" [href]="selectedOption1 ? 'https://www.example.com?view=amp&constraint=' + selectedOption1 + '&sort_by=' + selectedSorting : 'https://www.example.com'">
  Link
</a>
 </br>

<button on="tap:AMP.setState({selectedOption1: 'Interactivity',selectedSorting:'orderby_date'})">
  Say "Hello Interactivity"
</button>
<button on="tap:AMP.setState({selectedOption1: '',selectedSorting:''})">
  Say "Blank"
</button>
person Nisarg    schedule 02.05.2020
comment
Просто хочу подтвердить - (A ? '1' : '2') при использовании в усилителе, как в вашем примере выше, подразумевает, что если существует A, то значением будет «1», иначе «2» будет значением? Кроме того, где это упоминается в документации AMP, я хотел бы также увидеть все операторы. Не могу найти его и в документации AMP Bind. - person Arpan Jain; 02.05.2020
comment
Да, объяснение, которое вы дали, верное. У вас также могут быть некоторые условия, такие как (A == 1 ? 'Да' : 'Нет'), которые будут сравнивать значение 'A' с 1 и давать результат в соответствии с условием. Вот ссылка на страницу amp-bind, вы можете найти все операции и атрибуты, касающиеся amp-bind amp.dev/documentation/components/amp-bind Что касается этой троичной операции, я нашел этот пример здесь, amp.dev/documentation/examples/interactivity-dynamic-content/. Надеюсь, что это поможет вам. - person Nisarg; 03.05.2020