Пользователь выбирает несколько таких чекбоксов и нажимает кнопку "Выбрать".
selected() {
return this.filters.map(n => ({
filterId: n.filterId,
values: n.filterData.variants.filter(m => m.checked).map(m => m.key),
}));
},
const widgetData = [
{ name: 'something', value: 14, date: '02.08.2018' },
{ name: 'something', value: 43, date: '03.08.2018' },
{ name: 'something', value: 44, date: '04.08.2018' },
{ name: 'something', value: 38, date: '05.08.2018' },
];
const startDate = '01.08.2018';
const endDate = '25.08.2018';
const widgetDataObj = widgetData.reduce((acc, n) => (acc[n.date] = n, acc), {});
const start = new Date(startDate.split('.').reverse().join('-'));
const end = new Date(endDate.split('.').reverse().join('-'));
const result = [];
for (; start <= end; start.setDate(start.getDate() + 1)) {
const date = start.toLocaleDateString('ru-RU');
result.push(widgetDataObj[date] || {
name: 'something',
value: 0,
date,
});
}
console.log(result);
const filterItem = (list, item) =>
list.map(n => ({
...n,
items: n.items.filter(m => m.id !== item.id),
}));
function removeItem(list, { id }) {
list.forEach(({ items: n }) => {
n.splice(0, n.length, ...n.filter(m => m.id !== id));
});
}
DELETE FROM pos WHERE num < 10000
?num::integer < 10000
. function recalc() {
const register = +$('[name="radio-register"]:checked').data('value');
$('#price_result, #price1').text(register
? register +
+$('#count-class option:selected').data('value') +
+$('[name="radio-znak"]:checked').data('value')
: 0
);
}
$('input[name="radio-znak"], input[name="radio-register"], #count-class').change(recalc);
recalc();
const max = (data, key = n => n) =>
Array.prototype.reduce.call(data, (max, n) => {
const val = key(n);
return val > max[1] ? [ n, val ] : max;
}, [ null, -Infinity ]);
const [ item, value ] = max(
form.querySelectorAll('.kursBtn'),
n => +n.nextElementSibling.value
);
form.querySelector('#winner').value = `${item.name} - ${value}`;
data() {
return {
items: ['iPhone 7', 'Galaxy S8', 'Nokia N8', 'Xiaomi Mi6'],
};
},
e.target.getAttribute('здесь имя атрибута')
, но, как уже заметили выше - вы сильно неправы добавляя name div'у. Замените на data-атрибут:onClick = e => {
console.log(e.target.dataset.name);
}
<div data-name="xxx" onClick={this.onClick}>hello, world!!</div>
<div onClick={() => console.log('xxx')}>hello, world!!</div>
this.points = e.get('target').model.getReferencePoints();
this.points = e.get('target').model.getReferencePoints().slice();
function comparison(newPoints, oldPoints) {
const
oldPoint = oldPoints.find(n => !newPoints.includes(n)),
newPoint = newPoints.find(n => !oldPoints.includes(n));
if (oldPoint && newPoint) {
console.log('update', oldPoint, 'to', newPoint);
} else if (oldPoint) {
console.log('delete', oldPoint);
} else if (newPoint) {
console.log('create', newPoint);
}
}
а как добавить классы к движущемуся объекту в местах остановки?
хочу сделать крутящийся spinner на блоке, когда данные обновляются, затем при выводе новых данных, скрывать его
this.showSpinner = true
this.showSpinner = false
<div class="spinner" v-if="showSpinner"></div>
alert(({
1: 'b',
2: 'c',
})[a] || 'd');
false
, то извлекайте значение из объекта только в том случае, если ключ существует:const obj = {
1: 'b',
2: 'c',
7: null,
8: NaN,
};
const defaultValue = 'd';
alert(obj.hasOwnProperty(a) ? obj[a] : defaultValue);