const data: {
hello: {
wtf: string;
};
} = {
hello: {
wtf: 'world',
},
};
for (const [key] of Object.entries(data) as [keyof typeof data, any][]) {
console.log(data[key]);
}
interface Data {
hello: {
wtf: string;
};
}
type DataKey = keyof Data;
const data: Data = {
hello: {
wtf: 'world',
},
};
for (const [key] of Object.entries(data) as [DataKey, any][]) {
console.log(data[key]);
}
--net=host
и уберите --port
(оно бесмысленно будет). Естественно 80-й порт на хосте должен быть свободен, в противном случае правьте конфиг nginx для контейнера.host.docker.internal
(документация). На Маке доступен loopback по адресу docker.for.mac.localhost
, на Windows противоречивые вещи накопал. Как я понял --net=host
не нужен в этом случае, но стоит проверить. location /robots.txt { proxy_pass http://media-static/$host/static; }
proxy_pass http://media-static/$host/static$uri;
proxy_pass http://media-static/$host/static/robots.txt;
const result = Object.entries(obj).reduce((acc, [key, {active, completed}]) => {
const filter = ({data: {meta: {consumer: {id}}}}) => id === 1;
acc[key] = {
active: active.filter(filter),
completed: completed.filter(filter)
};
return acc;
}, {});
{
aQueue: ...,
bQueue: ...
}
.mdc-chip::after, .mdc-chip::before {background-color: rgba(0,0,0,.87);}
Как вообще узнать что в таком месяце 28 дней, в таком 30 или 31?
/** число дней */
function daysInMonth (month, year) {
return new Date(year, month, 0).getDate();
}
/** день недели 1 числа месяца */
function getFirstDayOfMonth (month, year) {
return new Date(year, month, 1).toLocaleString('ru', { weekday: 'long' });
// если просто номер
// return new Date(year, month, 1).getDay();
}
function getDaysArray(year, month) {
var numDaysInMonth, daysInWeek, daysIndex, index, i, l, daysArray;
numDaysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
daysInWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
daysIndex = { 'Sun': 0, 'Mon': 1, 'Tue': 2, 'Wed': 3, 'Thu': 4, 'Fri': 5, 'Sat': 6 };
index = daysIndex[(new Date(year, month - 1, 1)).toString().split(' ')[0]];
daysArray = [];
for (i = 0, l = numDaysInMonth[month - 1]; i < l; i++) {
daysArray.push({
year: year,
month: month,
number: (i + 1),
day: daysInWeek[index++]
})
if (index == 7) index = 0;
}
return daysArray;
}
console.log(getDaysArray(2019, 7))
model: {
prop: 'checked',
},
props: {
value: [ String, Number ],
checked: [ Boolean, Array ],
label: String,
disabled: Boolean,
},
computed: {
model: {
get() {
return this.checked;
},
set(val) {
this.$emit('input', val);
},
},
},
<label>
<input
type="checkbox"
v-model="model"
:value="value"
:disabled="disabled"
/>
{{ label }}
</label>
v-for
вешаем на template
, внутренний на tr
, ячейки с rowspan'ами выводятся только на нулевой итерации внутреннего цикла:<template v-for="row in rows">
<tr v-for="(n, i) in row.links">
<td v-if="!i" :rowspan="row.links.length">{{ row.name }}</td>
<td v-if="!i" :rowspan="row.links.length">{{ row.age }}</td>
<td>{{ n }}</td>
</tr>
</template>
template
и v-for
:<template v-if="!i">
<td v-for="k in [ 'name', 'age' ]" :rowspan="row.links.length">{{ row[k] }}</td>
</template>
<tr v-for="row in rows">
<td v-for="item in row">
<template v-if="item instanceof Array">
<div v-for="n in item">{{ n }}</div>
</template>
<template v-else>{{ item }}</template>
</td>
</tr>
<template v-for="row in rows">
<tr>
<td :rowspan="row.links.length">{{ row.name }}</td>
<td :rowspan="row.links.length">{{ row.age }}</td>
<td>{{ row.links[0] }}</td>
</tr>
<tr v-for="n in row.links.slice(1)">
<td>{{ n }}</td>
</tr>
</template>
v-for
по индексам нужных вам элементов:<tr v-for="item in parsedCSV">
<td v-for="i in [ 0, 3 ]">{{ item[i] }}</td>
</tr>
shortItems() {
return this.parsedCSV.map(([ name,,,job ]) => [ name, job ]);
},
<tr v-for="item in shortItems">
<td v-for="n in item">{{ n }}</td>
</tr>