:root {
--aside-width: 200px; /* По умолчанию */
}
.aside {
width: var(--aside-width);
}
.main {
margin-right: var(--aside-width);
}document.documentElement.style.setProperty('--aside-width', '200px'); // show
document.documentElement.style.setProperty('--aside-width', '0'); // hide Каким образом здесь утроена структура бд?
Какой тип имеют поля address, company?
Как мне их записать в бд
получать их в таком виде
v-if/v-else - один для показа форматированного значения, другой для редактирования:<input v-if="edit" v-model="price" @blur="edit = false">
<input v-else :value="formatPrice(price)" @focus="edit = true">data: () => ({
edit: false,
price: 666,
}),
methods: {
formatPrice: price => `${(+price).toLocaleString()} руб.`,
},
data: () => ({
items: [ ... ],
filters: [
item => item.status === 'hello, world!!',
item => item.price > 666,
item => item.text.includes('fuck the world'),
],
}),
computed: {
filteredItems() {
return this.filters.reduce((items, filterFn) => items.filter(filterFn), this.items);
},
}, isDone (true / false).this внутри function зависит от контекста вызова этой function.onAuthStateChanged - вызывается переданная ему функция-обработчик, которой устанавливается какой-то this(или не устанавливается, и тогда он по умолчанию window или, в строгом режиме, undefined). И этот this точно никак не связан с текущим this Vue, потому что тот никаким образом не передан при вызове, и, соответственно onAuthStateChanged о нём ничего не знает.(async function(user) { ... }).bind(this) чтобы жёстко привязать эту функцию к this.vm.g = 5;, т.к. таким образом конкретный this сохранён в переменную и не меняется в зависимости от контекста вызова.async (user) => { ... }, её механика работы по сути осуществляет неявный bind.bind всех методов к this:onAuthStateChanged(this.onAuthStateChanged)
methods: {
onAuthStateChanged: async function (user) { ... }
}
<a href="https://toster.ru" onclick="return false">link</a>a.disabled {
pointer-events: none;
}<a href="https://toster.ru" class="disabled">link</a>
methods: {
toggleElement(id) {
const index = this.selectedElArr.indexOf(id);
if (index !== -1) {
this.selectedElArr.splice(index, 1);
} else {
this.selectedElArr.push(id);
}
},
...@click="toggleElement(data.id)" showElement.selectedElArr = [2, 1], потом кликаете по 3-ему, чтобы его закрыть и метод захочет удалить selectedElArr[2], а такого элемента даже нет. Ну и т.д.selectedElArr[index]=true и удалять selectedElArr[index]=false, если опираться на порядок div в списке. Ну и проверять потом так жеif (!!this.selectedElArr[index]) {
this.selectedElArr[index] = false;
} else {
this.selectedElArr[index] = true;
}}this.selectedElArr[index] = !this.selectedElArr[index];data.isOpened (isActive, isVisible и т.д.) и уже отталкивался от него, это мне кажется надежнее.
<div class="lang-changer" @click="toggle = !toggle">
<div :class="toggle ? 'lang-tog': 'lang'">
<span :class="toggle ? 'a': 'b'">РУ</span>
<span :class="toggle ? 'x': 'y'"></span>
</div>
</div>data(){
return {
toggle: false;
}
}const myval = '+1';
const arr = Object.keys(FList) // берем ключи из пар ключ-значение
.filter(key=>key===myval); // ... и фильтруем по совпадению с нашей переменной myval
for(let item of arr){
console.log(FList[item]) // вытаскиваем обьекты по ключам, полученным ранее
}const myval = '+1';
for(const [key,value] of Object.entries(FList)){
if(key===myval){
console.log(value)
}
} if (question === 1||3)if (question === 1|| question === 3)if ([1,3].indexOf(question) > -1)