<el-select :value="item2.select.value" @input="onInput(item2.name, $event)">
methods: {
onInput(propName, propVal) {
this.$store.commit('updateForm', { propName, propVal });
},
},
When there is only one single-line text input field in a form, the user agent should accept Enter in that field as a request to submit the form.
@keypress.enter.prevent
. function simpleSlider(element) {
const root = typeof element === 'string'
? document.querySelector(element)
: element;
const items = root.querySelectorAll('.slider__item');
const prev = root.querySelector('.slider__btn-prev');
const next = root.querySelector('.slider__btn-next');
let index = 0;
function slideTo(newIndex) {
items[index].classList.remove('slider__item--active');
index = (newIndex + items.length) % items.length;
items[index].classList.add('slider__item--active');
}
prev.addEventListener('click', () => slideTo(index - 1));
next.addEventListener('click', () => slideTo(index + 1));
}
simpleSlider('#slider1');
simpleSlider(document.querySelector('#slider2'));
const elements = [...document.getElementsByTagName('p')];
// или
const elements = Array.from(document.getElementsByTagName('p'));
// или
const elements = [].concat.apply([], document.getElementsByTagName('p'));
// или
const elements = Array.prototype.slice.call(document.getElementsByTagName('p'));
// или
const elements = Object.values(document.getElementsByTagName('p'));
const result = arr.filter((n, i, a) => n === a.find(m => m.lat === n.lat && m.lng === n.lng));
const result = Object.values(arr.reduce((acc, n) => (acc[`${n.lat},${n.lng}`] = n, acc), {}));
const result = [].concat(...Object
.values(arr.reduce((acc, n) => ((acc[n.lat] = acc[n.lat] || {})[n.lng] = n, acc), {}))
.map(Object.values)
);
const result = Array.from(new Set(arr.map(JSON.stringify)), JSON.parse);
const unique = (arr, keys) =>
arr.filter((n, i, a) => i === a.findIndex(m => keys.every(k => n[k] === m[k])));
const result = unique(arr, [ 'lat', 'lng' ]);
Как я понял, v-model в компоненте ProductRow обновляет почему-то не локальную копию item, а state у стора
data() { return { 'item': this.initialItem } }
Object.assign({}, this.initialItem)
. Или так: { ...this.initialItem }
.data: () => ({
items: [ 'имя-компонента-1', 'имя-компонента-2', 'имя-компонента-3' ],
selected: null,
}),
<li
v-for="n in items"
v-text="n"
@click="selected = n"
></li>
<component v-if="selected" :is="selected"></component>
Делаю вроде все по документации ангулар!
import { Injectable } from '@angular/compiler/src/core';
import { Injectable } from '@angular/core';
onScroll = e => {
if (e.target.offsetHeight + e.target.scrollTop === e.target.scrollHeight) {
/*
* здесь предпринимаете действия, имеющие своим результатом
* демонстрацию дополнительного контента
*/
}
}
<div onScroll={this.onScroll}>
...
[...document.querySelector('ul').children]
.map(n => ({ el: n, text: n.querySelector('.link').innerText }))
.sort((a, b) => a.text.localeCompare(b.text))
.forEach(n => n.el.parentNode.append(n.el));
const arr = [6,4,4.5,3.5,5.5,3,6.5];
const middle = [...arr].sort((a, b) => a - b)[arr.length / 2 | 0];
const Image = ({ url }) => (
<div>
<img src={url} />
</div>
);
class App extends React.Component {
state = {
items: [],
}
componentDidMount() {
fetch('https://api.kai-zer.ru/dev/method/products.getAll')
.then(r => r.json())
.then(r => {
this.setState({
items: r.response.items,
});
});
}
render() {
return (
<div>
{this.state.items.map(n => <Image {...n.image} />)}
</div>
);
}
}
const blockSelector = '.block';
const buttonSelector = '[data-class]';
const activeClass = 'active';
const blocks = document.querySelectorAll(blockSelector);
const buttons = [...document.querySelectorAll(buttonSelector)];
const classes = buttons.map(n => n.dataset.class);
document.body.addEventListener('click', e => {
const button = e.target.closest(buttonSelector);
if (button) {
blocks.forEach(n => {
n.classList.remove(...classes);
n.classList.add(button.dataset.class);
});
buttons.forEach(n => n.classList.toggle(activeClass, n === button));
}
});