• Ошибка при перезагрузке страницы в собранном проекте vue js?

    Groyreg
    @Groyreg Автор вопроса
    Дмитрий Кузнецов, а не подскажете в какое место именно записывать этот кусок?
    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.html$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.html [L]
    </IfModule>


    Добавлял в разные места файла httpd.conf не помогло.
    В гугле тоже не нашел...
  • Рендеринг изображений по условию?

    Groyreg
    @Groyreg Автор вопроса
    0xD34F, cпасибо, сработало. Я правда тоже уже сделал сам несколько иначе, но Ваш способ изящнее и короче. =)
  • Рендеринг изображений по условию?

    Groyreg
    @Groyreg Автор вопроса
    Predve4niy , пропустил да, не ноль правда, а [ i ] , однако проблему это не решило, ко всем типам отобразилась лишь первая иконка с индексом [ 0 ].
  • Цикл внутри v-if?

    Groyreg
    @Groyreg Автор вопроса
    0xD34F, да, именно так. Все работает, еще раз спасибо.
  • Цикл внутри v-if?

    Groyreg
    @Groyreg Автор вопроса
    0xD34F, добрый день, можно у вас попросить маленькое дополнение к выше написанному?
    Мне необходимо на div с классом event-data повесить событие которое в стор будет передавать объект дня с событием совпадающего типа. Ну т.е. Вы написали функцию, где мы вешаем класс если совпадает тип события:
    <div :class="date.activities && date.activities.length > 0 && date.activities.some(n => n.type_id == types.id) ? 'event-data' : 'event-data-empty'"></div>


    Я исходя из этого попытался немного переделать сделал так:
    <div v-for="date in dayList">
       <div class="one-item" v-for="types in activityTypes">
    				<div @click='sendEvent(date.filter(type => {return type.activities.some(n => n.type_id == types.id)}))'  
                class="event-data" 
                v-if="date.activities && date.activities.length > 0 && date.activities.some(n => n.type_id == types.id)">
    		    </div>
    				<div class="event-data-empty" v-else=""></div>
    	</div>
    </div


    В общем я хочу в метод sendEvent передать отфиьтрованный объект date, который будет содержать в себе не все date.activities[i] а только те, которые удовлетворяют условию что type.id == types.id

    Можете меня поправить?
    Заранее спасибо.
  • Куда лучше записать данные с вычисляемыми переменными?

    Groyreg
    @Groyreg Автор вопроса
    0xD34F, вроде понял :) Спасибо, пойду попробую.
  • Куда лучше записать данные с вычисляемыми переменными?

    Groyreg
    @Groyreg Автор вопроса
    Nikita Velko, добавил в вопрос. В общем-то у меня есть методы, которые меняют значения некоторых переменных этого объекта, и при их изменении другие переменные, которые зависят от тех, что изменились не меняются..
  • Цикл внутри v-if?

    Groyreg
    @Groyreg Автор вопроса
    0xD34F, последнее решение работает! Очень вам благодарен! Спасибо!
  • Цикл внутри v-if?

    Groyreg
    @Groyreg Автор вопроса
    что-то похожее я пробовал не совсем сработало.. вот весь код:
    <div class="cal-header-m cal-title" v-for="types in activityTypes">
    			<span>{{types.name}}</span>
    		</div>
    		<div class="cal-table-m row visible-lg" v-for='date in dayList.slice(offset, offset + perPageLg)'>
    			<div class="day-week">
    				<span >
    		            {{date.dayWeekName}}
    		        </span>
    			</div>
    			<div class="day" :class="{
    	            todayM: date.status ? (today == date.date) : false,
    	            eventM: date.status ? (date.activities && date.activities.length>0) : false,
    	            [calendar.options.className] : (date.date == selectedDay)}">
    				<span>{{date.status ? date.date.split('/')[2] : '&nbsp'}}</span>
    			</div>
    			<div></div>
    			<div class="one-item" v-for="types in activityTypes">
    				<div class="event-data" v-if="date.activities && date.activities.length > 0 && date.activities.every(n => n.type_id == types.id)"></div>
    				<div class="event-data-empty"  v-else=""></div>
    				<div class="event-data-empty"  v-if="!date.activities || date.activities.length == 0"></div>
    			</div>
    		</div>


    при том, что вы написали, при рендеринге отображается если только в дате было одно activities, а там где их было несколько он ничего не отображает (
  • ForEach внутри директивы v-if?

    Groyreg
    @Groyreg Автор вопроса
    Влад, да давайте так и поступим. https://vk.com/gregory_kocharyan
    Я предполагаю, что условие должно складываться из двух частей: совпадает тип и совпадает день. Тогда оно точно одно будет.


    Мы, наверное, опять не правильно друг друга поняли, проверка на день уже есть, конкретно там где летит верстка это 11 число месяц ноябрь, на этот день в массиве есть 3 события два из них имеют type_id = 3, и 1 событие с type_id = 7 , и соответственно при рендренге 11 числа в столбце должно быть 2 зеленые клетки, напротив совпадающих типов событий, а когда на клетку кликаешь показывает какие события с таким типом были в этот день. Ну соответственно функционал кликания я сам реализую, просто пока никак не могу с рендерингом событий разобраться :) В общем добавляйтесь, как освободитесь.
  • ForEach внутри директивы v-if?

    Groyreg
    @Groyreg Автор вопроса
    Влад, так я дома :) А можно чуть подробнее про дополнительную проверку v-if?
  • ForEach внутри директивы v-if?

    Groyreg
    @Groyreg Автор вопроса
    Влад, договорились ) спасибо в любом случае за помощь ! :)
  • ForEach внутри директивы v-if?

    Groyreg
    @Groyreg Автор вопроса
    Влад, хотя красить готовую клетку тоже плохое решение, тк там ещё нужно будет дописать функционал что при клике на клетку с событием открывается подробное описание с этим событием, а если просто расскрасить клетку данные о событии туда не передашь (
  • ForEach внутри директивы v-if?

    Groyreg
    @Groyreg Автор вопроса
    Влад, я щас с работы домой отправился, приду ещё голову поломаю. Если у Вас до этого времени родится решение буду премного благодарен.
    Я думал может вместо создания элемента с классом если совпадает тип события, просто красить уже созданный элемент, в таком случае дубляжа клеток не будет, но это пока теория как реализовать не думал :)
    Доеду попробую то что вы написали, отпишусь, правда судя по пробкам это будет после 9 (((
  • ForEach внутри директивы v-if?

    Groyreg
    @Groyreg Автор вопроса
    Влад, ведь эта строка

    <div class="event-data" v-for="activity in date.activities" v-if="types.id == activity.type_id">{{types.id}}</div>

    говорит о том что если type id совпадет то создается элемент event-data вот и получается, что 11 числа он 2 раза совпадает на тройке один на семерке, где тройка элемент должен быть не 2 раза, а один, ну я думаю суть понятна, что я хочу в итоге получить, что там где есть события были клетки зеленые в остальном белые, но пока не получается условие правильно составить (((
  • ForEach внутри директивы v-if?

    Groyreg
    @Groyreg Автор вопроса
    Влад, смотрите если код рендерит часть, где date.activities имеет один объект, то все нормально.
    5a0c556902779514435271.png
    А если, date. activities 3 объекта как это есть в ряду 11 числа, то код создает внутри каждого элемента one-item 3 элемента div:
    5a0c557247148158259752.png

    у меня данные с сервера берутся в коде их нет вот скриныс vue dev tools , немного топорно, но это лучший вариант чтобы наглядно увидеть данные. А весь код который рендерит таблицу я выше показал
    Это типы которые отрисовываются в левой колонке
    5a0c571ab3718441303105.png
    Это массив дней с числами и событиями на определенный день вот у 11 числа 3 события есть
    5a0c5771a6ddf452992513.png
    А это 9 число и там всего одно событие
    5a0c5796b7ff9770859168.png

    В общем мне кажется из-за того что указано v-for="activity in date.activities" он и едет..
  • ForEach внутри директивы v-if?

    Groyreg
    @Groyreg Автор вопроса
    Влад, ну почти... выходит коряво, что в местах где в общем массиве activities встречается несколько раз все съезжает...

    5a0c50937553b125737846.png

    там где 11 число 3-ка должна быть один раз рядом с другими тройками, ну а семерка должна так же попадать в верстку нормально.. код пока такой:

    <div class="cal-header-m cal-title" v-for="types in activityTypes">
    				<span>{{types.name}}</span>
    			</div>
    		</div>
    		<div class="cal-table-m row visible-lg" v-for='date in dayList.slice(offset, offset + perPageLg)'>
    			<div class="day-week">
    				<span >
    		            {{date.dayWeekName}}
    		        </span>
    			</div>
    			<div class="day" :class="{
    	            todayM: date.status ? (today == date.date) : false,
    	            eventM: date.status ? (date.activities && date.activities.length>0) : false,
    	            [calendar.options.className] : (date.date == selectedDay)}">
    				<span>{{date.status ? date.date.split('/')[2] : '&nbsp'}}</span>
    			</div>
    			<div v-for="types in activityTypes">
    				<div class="event-data" v-for="activity in date.activities" v-if="types.id == activity.type_id">{{types.id}}</div>
    				<div class="event-data-empty" v-else=""></div>
    				<div class="event-data-empty"  v-if="!date.activities"></div>
    			</div>
    		</div>
  • Как отфильтровать массив объектов?

    Groyreg
    @Groyreg Автор вопроса
    0xD34F, возвращаясь к вашему решению с методом every..
    у меня сейчас есть похожая задача, только мне необходимо сравнить два значения и если true то отрисовать блок. Every, как я понял возвращает лишь true или false. А есть какой-то метод, чтобы можно было в директиве v-if в массиве пройтись по всем объектам этого массива? ну т.е.
    я хочу, чтобы сработала конструкция: v-if="type.id == date.activities.type_id " вот только activities может либо вообще не быть, либо быть пустым либо несколько их может быть.
    Сможете помочь, а то меня кажется никто не понял на тостере :(