@66demon666
По навыкам джун - по факту безработный

Почему не отрабатывает условие на Vue?

Здравствуйте! Сегодня целый день ковырялся с проблемой: есть задача сделать отрисовку выпадающего меню у элементов определенной категории товаров (сайт на битриксе). На фронте Vue, собирается всё это Webpack-ом. У битрикса выуживаю из инфоблока GUID секции, и если вижу нужную секцию, прокидываю флаг на фронт, например (show_times = N или show_times = false), в зависимости от чего будет отрисовка меню или нет. Вот код отрисовки

<div id="root">
<div class="какой-то блок" v-for="serv is Services">
<select v-if="((serv.times.length > 1) && (serv.show_times === 'Y'))">
<!--Тут какие-то options-->
</select>
</div>
</div>


Код условный, но суть я передал точь в точь. Проект достался мне по наследству, условие с serv.times.length было там изначально и успешно работало, я лишь добавил второе условие. Для отладки написал vue цикл, где выводил каждый объект (ну он там в json преобразуется) и поле show_times успешно приходит и в виде строки и в виде boolean. Однако условие не хочет отрабатывать никоим образом, я даже разбивал его и выводил на экран резульатат каждого сравнения, считает он все правильно, но при значении false всего выражения всё равно происходит отрисовка. Всё правильно работает, если вручную прописать вместо && show_times значение false, тогда он не отрисовывает. Могут ли это быть какие-то особенности работы с переменными Vue, может я что-то не так делаю, какие-то приколы Webpack или кэширование? Я уже все кэши по 10 раз сбрасывал, не хочет работать и всё.

Резюме: в Vue приходит переменная, я могу ее успешно прочитать, но условие с ее использованием не работает.
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
попробуйте посмотреть что в Services через браузерное расширение Vue Devtools. Для того чтобы оно заработало в init.php добавьте define('VUEJS_DEBUG', true);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы