bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

Несоответствие документации с получаемым результатом #1472

Closed vill closed 6 years ago

vill commented 6 years ago

Всем привет.

В документации написано следующее:

JS-параметры. Если значение не falsy, то миксует i-bem и добавляет содержимое в JS-параметры.

bem. Указывает шаблонизатору, нужно ли добавлять классы и JS-параметры для самой БЭМ-сущности и её миксов.

[Пример](https://bem.github.io/bem-xjst/?version=8.5.2&engine=BEMHTML&template=block(%27link%27)(%0A%20%20tag()(%27div%27)%2C%0A%20%20bem()(false)%2C%0A%20%20js()(%7Bkey%3A%20%27value%27%7D)%0A%2F%2F%20%20%20js()(true)%0A)%3B%0A&bemjson=(%5B%0A%20%20%7B%20block%3A%20%27link%27%2C%20content%3A%20%27content%27%2C%20cls%3A%20%27some-class%27%20%7D%2C%0A%20%20%7B%20tag%3A%20%27br%27%20%7D%2C%0A%20%20%7B%20block%3A%20%27link%27%2C%20content%3A%20%27content%27%20%7D%0A%5D)%3B%0A):

([
  { block: 'link', content: 'content', cls: 'some-class' },
  { tag: 'br' },
  { block: 'link', content: 'content' }
]);
block('link')(
  tag()('div'),
  bem()(false),
  js()({key: 'value'})
);
<div class="some-class i-bem">content</div>
<br>
<div>content</div>

Это баг? Почему cls так влияет на результат?

Наверное вывод должен быть 1 из:

// Судя по документации это должно быть правильным результатом
<div class="some-class">content</div>
<br>
<div>content</div>

или

<div class="some-class i-bem">content</div>
<br>
<div class="i-bem">content</div>
tadatuta commented 6 years ago

@vill в самом деле похоже на баг, будем чинить. спасибо!

tadatuta commented 6 years ago

https://github.com/bem/bem-xjst/issues/498

miripiruni commented 6 years ago

Мне кажется, что если есть cls и bem: false, то нужно выводить только значение cls в HTML class. И, естественно, не выводить js params.

miripiruni commented 6 years ago

+bem-xjst@8.8.6