Если в одном компоненте произойдет ошибка, будет ли это видно в другом?
Если нет, то подскажите, как...
const Vue = require('vue');const Vue = require('vue').default;
@changeMessage="changeMessage"директивы прослушивания событийv-onвнутри DOM-шаблонов автоматически преобразуются в нижний регистр (из-за нечувствительности HTML к регистру), поэтомуv-on:myEventстанетv-on:myevent— что делает прослушивание событияmyEventневозможным
Просто нужно еще чтобы компонент `SortableElement ` принял все пропсы.
const SortableItem = SortableElement((props) => (
<ElementItem {...props} />
));
Что не так делаю?
let uploadTo = null;
$('.file-upload-preview').click(function() {
uploadTo = this;
$('#file-upload').click();
});$(".file-upload-preview") на $(uploadTo).
const inputSelector = '.hidden_field';
const itemSelector = '.item';
const activeClass = 'active';
// как это может выглядеть с использованием jquery
const $items = $(itemSelector).click(function() {
$(this).toggleClass(activeClass);
$(inputSelector).val($items
.filter(`.${activeClass}`)
.get()
.map(n => $(n).text())
.join(', ')
);
});
// или, к чёрту jquery
const items = [...document.querySelectorAll(itemSelector)];
items.forEach(n => n.addEventListener('click', onClick));
function onClick() {
this.classList.toggle(activeClass);
document.querySelector(inputSelector).value = items
.filter(n => n.classList.contains(activeClass))
.map(n => n.innerText)
.join(', ');
}
контент у всех блоков разный - поэтому в массив их не засунуть
v-for использовать :is.
const result = Object.entries(commonObj).map(([ k, v ]) => ({
objDataName: (objectData.find(n => n.key === k) || {}).name || null,
packageName: (packageData.find(n => n.id === v.package_id) || {}).title || null,
}));const arrToObj = (arr, key, val) =>
arr.reduce((acc, n) => (acc[n[key]] = n[val], acc), {});
const objects = arrToObj(objectData, 'key', 'name');
const packages = arrToObj(packageData, 'id', 'title');
const result = Object.entries(commonObj).map(n => ({
objDataName: objects[n[0]] || null,
packageName: packages[n[1].package_id] || null,
}));
for (let i = 0; i < 6; i++) {
const count = res.data.filter(n => +n.categoryid === i).length;
$(`#category_count_${i}`).html(`(${count})`);
}const grouped = res.data.reduce((acc, n) => {
(acc[n.categoryid] = acc[n.categoryid] || []).push(n);
return acc;
}, {});
$('[id^="category_count_"]').text(function() {
return `(${(grouped[/\d*$/.exec(this.id)[0]] || []).length})`;
});const counted = res.data.reduce((acc, n) => (
acc[n.categoryid] = -~acc[n.categoryid],
acc
), {});
document.querySelectorAll('[id^="category_count_"]').forEach(n => {
n.textContent = `(${counted[n.id.split('_').pop()] || 0})`;
});
const checkItem = item => item.categoryid === '3';const count = response.data.filter(checkItem).length;
// или
const count = response.data.reduce((acc, n) => acc + checkItem(n), 0);
// или
let count = 0;
for (const n of response.data) {
count += checkItem(n);
}
// или
const count = +eval(response.data.map(checkItem).join('+')) || 0;
// или
const count = (function sum(i, n = response.data[i]) {
return n ? checkItem(n) + sum(i + 1) : 0;
})(0);
checked не приводит к возникновению события change, так что его следует создавать самостоятельно - добавьте .trigger('change') после вызова prop.
<div class="1">transition, добавить анимацию: animation: show 10s;.@keyframes show {
from {
opacity: 0;
}
to {
opacity: 1;
}
}