нужно пройтись в сторе по массиву найти у какого объекта stepConditions.active === true ему поставить false, а следующему объекту в stepConditions.active выставить true
case OPEN_NEXT_EXPRESS_FORM_STEP:
const active = 1 + state.findIndex(n => n.stepConditions.active);
return active ? state.map((n, i) => ({
...n,
stepConditions: {
...n.stepConditions,
active: i === active,
},
})) : state;
case OPEN_NEXT_EXPRESS_FORM_STEP:
return state.map((n, i, arr) => ({
...n,
stepConditions: {
...n.stepConditions,
active: !!(i && arr[i - 1].stepConditions.active),
},
}));
Name должна падать в массив labels
watch: {
choosenMetabolit(val) {
this.anMetProfData.labels.push(val.name);
},
},
а result_1, 2 и 3 имели путь datasets[0, 1 или 2]. data
watch: {
choosenMetabolit(val) {
const data = this.anMetProfData;
const sets = data.datasets;
data.labels.push(val.name);
sets[0].data.push(val.result_1);
sets[1].data.push(val.result_2);
sets[2].data.push(val.result_3);
},
},
:src="getImgUrl(diaryIcons)
сделайте :src="getImgUrl(icons)
.getImgUrl(icon) {
var images = require.context('../../../../assets/icons/', false, /\.png$/)
return images('./' + icon.name + '.png')
}
items.slice...
надо было унести в computed):<div v-for="item in items.slice((page - 1) * perPage, page * perPage)">
{{ item }}
</div>
computed: {
numPages() {
return Math.ceil(this.items.length / this.perPage);
},
},
methods: {
next(change) {
this.page = Math.max(1, Math.min(this.numPages, this.page + change));
},
},
<button @click="next(-1)" :disabled="page <= 1">prev</button>
<button @click="next(+1)" :disabled="page >= numPages">next</button>
resultGenes() {
return this.filteredResultGenes.filter(elem => {
return elem.snps.every(n => n.snpgroup.every(m => m.group_id === 1));
});
}
есть похожая задача, только мне необходимо сравнить два значения и если true то отрисовать блок. Every, как я понял возвращает лишь true или false. А есть какой-то метод, чтобы можно было в директиве v-if в массиве пройтись по всем объектам этого массива? ну т.е.
я хочу, чтобы сработала конструкция: v-if="type.id == date.activities.type_id " вот только activities может либо вообще не быть, либо быть пустым либо несколько их может быть.
v-if
. Сделайте вычисляемое свойство, которое будет представлять данные, соответствующие условию, и выводите их все. $(document).on('click', '.ev-title', function() {
$(this).closest('.wrapper').find('.dop-descr').toggleClass('visible');
});
.dop-descr
, а у их самых дальних не общих предков, которыми, насколько я понял, являются .wrapper
. Если вдруг решите дополнительно стилизовать внутри .wrapper
с кликнутым .ev-title
ещё какие-то элементы, то не придётся переписывать js-код. Конечно, css придётся немного переписать, вместо .dop-descr.класс
стилизовать надо будет .класс .dop-descr
.const containerSelector = '.wrapper';
const buttonSelector = '.ev-title';
const activeClass = 'active';
$(containerSelector).on('click', buttonSelector, e => {
$(e.delegateTarget).toggleClass(activeClass);
});
document
.querySelectorAll(`${containerSelector} ${buttonSelector}`)
.forEach(n => n.addEventListener('click', onClick));
function onClick() {
this.closest(containerSelector).classList.toggle(activeClass);
}
var time_start = "12:20";
var duration = "01:25";
var d1 = new Date('0000-01-01T' + time_start);
var d2 = new Date('0000-01-01T' + duration);
var finish = new Date('0000-01-01T00:00');
finish.setHours(d1.getHours() + d2.getHours());
finish.setMinutes(d1.getMinutes() + d2.getMinutes());
var finishTime = finish.toTimeString().slice(0, 5);
.item {
transition: transform 1s;
}
.move {
transform: translateY(150px);
}
$(document).on('click', '.item', function() {
$(this).toggleClass('move');
});
<input type="checkbox" id="xxx">
<label class="item" for="xxx">
...
input[type="checkbox"] {
display: none;
}
input[type="checkbox"]:checked + .item {
transform: translateY(150px);
}
v-model
. Можно сделать ещё один объект - с дефолтными значениями для input'ов, и просто копировать его содержимое в eventDefault после передачи данных в родительский компонент.const copy = Object.assign({}, original)
. Или так: const copy = { ...original }
. @change="runMethod(variable_from_vuex)"
data: () => ({
newPhone: {},
...
}),
<input v-model="newPhone.name">
<input v-model="newPhone.ssd">
addPhone() {
this.phones.push(this.newPhone);
this.newPhone = {};
},