Size: a a a

2019 December 27

NK

Nikita Khaetsky in OctoberCMS
Ростислав
Есть partial - бэм блок. К примеру с таким содержимым
<div class="someblock" id="blockID">
   <div class="someblock__elements">
       {% for element in elements %}
           <div class="someblock__element"></div>
       {% endfor %}
   </div>
</div>

Вызывается так {% partial "someblock" elements=elements %}
При клике на кнопку нужно бросить в него другой массив elements и обновить.
Проблема в том что при рендере весь контент partial-a добавится внутрь blockID и получится:
<div class="someblock" id="blockID">
   <div class="someblock" id="blockID">
       <div class="someblock__elements">
           {% for element in elements %}
               <div class="someblock__element"></div>
           {% endfor %}
       </div>
</div>
</div>
Ну ты базово не правильно делаешь
источник

NK

Nikita Khaetsky in OctoberCMS
Ты должен в id элемента указывать родительский элемент, в котором лежит partial
источник

NK

Nikita Khaetsky in OctoberCMS
То-есть
<div id="blockWrap">
   {% partial "someblock" elements=elements %}
</div>
и обновляешь
#blockWrap => someblock

он заменит фрагмент
источник

Р

Ростислав in OctoberCMS
Nikita Khaetsky
То-есть
<div id="blockWrap">
   {% partial "someblock" elements=elements %}
</div>
и обновляешь
#blockWrap => someblock

он заменит фрагмент
вот как раз это мне и не нравится (
источник

NK

Nikita Khaetsky in OctoberCMS
Ростислав
вот как раз это мне и не нравится (
Чем же?
источник

NK

Nikita Khaetsky in OctoberCMS
Ты обновляешь внутри элемента фрагмент
источник

NK

Nikita Khaetsky in OctoberCMS
То что ты делаешь чисто логически превращается во вкладывание
источник

АR

Артём R in OctoberCMS
Ростислав
вот как раз это мне и не нравится (
Посмотри стандартную тему demo.
Там в примере (калькулятор вроде) показано, как передать переменную через page.
Может тебе оно надо
источник

Р

Ростислав in OctoberCMS
Nikita Khaetsky
Чем же?
получается если бэм-блок =  partial, то div-родитель придется писать не в partial-e
источник

NK

Nikita Khaetsky in OctoberCMS
Ростислав
получается если бэм-блок =  partial, то div-родитель придется писать не в partial-e
Верно
источник

Р

Ростислав in OctoberCMS
ну хорошо бы чтоб весь бэм-блок был в partial-e, а не только внутряк
источник

Р

Ростислав in OctoberCMS
<div class="someblock" id="blockID">
   {% partial "someblock" elements=elements %}
</div>

Так вот получается тогда
источник

A

Alex in OctoberCMS
Ростислав
получается если бэм-блок =  partial, то div-родитель придется писать не в partial-e
по смыслу - родитель блока - это часть страницы на которую вы выводите фрагмент, а не часть фрагмента
источник

АR

Артём R in OctoberCMS
Alex
по смыслу - родитель блока - это часть страницы на которую вы выводите фрагмент, а не часть фрагмента
Всё верно
источник

АR

Артём R in OctoberCMS
Причем можно прописать не только id, а другие селекторы. Тогда везде этот partial отрисуется
источник

Р

Ростислав in OctoberCMS
Alex
по смыслу - родитель блока - это часть страницы на которую вы выводите фрагмент, а не часть фрагмента
+ да, действительно, чет туплю )
Получается partial = бэм-блок. Обертка (с id) = бэм элемент страницы
источник

A

Axenia in OctoberCMS
Boarworm (398.3) увеличил карму urgotto (182.0)
источник

Р

Ростислав in OctoberCMS
Nikita Khaetsky
То-есть
<div id="blockWrap">
   {% partial "someblock" elements=elements %}
</div>
и обновляешь
#blockWrap => someblock

он заменит фрагмент
+ еще не успел плюсонуть )
источник

A

Axenia in OctoberCMS
Boarworm (398.3) увеличил карму ReaZzon (2361.2)
источник

Р

Ростислав in OctoberCMS
эх, плохо что переменные придется в двух местах указывать, в twig и при ajax рендере
источник