data: () => ({
activeProject: null,
...
}),
<button
v-for="project in group"
v-text="project.name"
@click="activeProject = project"
></button>
<input type="checkbox" v-model="task.done">
Проблема в том, что после первого тыка не хочет рендерится новый лог, он вроде как подгружается, но страница рендерит "первака".
#analyzes-template
- добавьте существующим элементам общий родительский:<template id="analyzes-template">
<div>
<div v-show="active_analyzes_template">
Анализы
</div>
<a class="btn btn-sm btn-outline-success" @click="openTemplate()">НАЗНАЧИТЬ АНАЛИЗЫ</a>
</div>
</template>
export default {
name: 'CustomButton',
data: () => ({
input_value: '',
}),
computed: {
user() {
return this.$store.state.user;
},
},
watch: {
user(val) {
this.input_value = val.custombutton;
},
},
};
Все слишком громоздко, ступор.
Попробовала показать работу тут.
computed: {
categories() {
return this.$store.state.main_page.NEWS.map(n => ({
value: n.id,
label: n.name,
}));
},
},
dateStart: {
get() {
return moment().subtract(1, this.selectedPeriod).toDate();
},
set(value) {
// ну, тут вам виднее, какой должен код быть
},
},
из-за того, что при первичном рендере input №2 не существует, на него не применяется библиотека VeeValidate
на второй возникает ошибка, что я делаю не так?
как лучше реализовать, чтобы замена символа происходила в том же окне
<textarea v-model="input"></textarea>
data: () => ({
input: '',
}),
watch: {
input(v) {
this.input = v.split('1').join('2');
},
},
<textarea v-model="input" @input="onInput"></textarea>
data: () => ({
input: '',
}),
methods: {
onInput() {
this.input = this.input.split('1').join('2');
},
},
Все делал по этой документации...
<section v-if="show" transition="fade"></section>
<transition name="fade">
<section v-if="show"></section>
</transition>
transition(name="fade")
section(v-if="show")
const fs = require('fs');
let ID = 0;
const clients = {};
new (require('ws').Server)({
port: 8081,
}).on('connection', ws => {
const id = ++ID;
clients[id] = ws;
ws.on('close', () => {
delete clients[id];
});
});
fs.watch('./', (eventType, filename) => {
if (/\.json$/.test(filename)) {
fs.readFile(filename, 'utf8', (err, data) => {
if (!err && data) {
const info = JSON.stringify({
filename,
data: JSON.parse(data),
});
Object.values(clients).forEach(n => n.send(info));
}
});
}
});
<div id="app">
<div v-for="(data, name) in files">
<div>{{ name }}</div>
<div>{{ data }}</div>
</div>
</div>
new Vue({
el: '#app',
data: {
socket: null,
files: {},
},
created() {
this.socket = new WebSocket('ws://localhost:8081');
this.socket.onmessage = e => {
const f = JSON.parse(e.data);
this.$set(this.files, f.filename, f.data);
};
},
});
$refs.cpt.filter
. Типа так.$refs
- можно оформить в хранилище геттер, представляющий отфильтрованные данные, и создавать элементы для isotope'а на их основе. Как это может выглядеть. .news-popup__content__close
, генерируется событие click, оно обрабатывается - выполняется emit, генерируется событие close, оно обрабатывается в соответствующем обработчике, popup убирается. При этом событие click никуда не делось, оно всплывает, и в .news-block
обрабатывается ещё раз - только что удалённый popup снова рендерится. Ну а внешне это всё выглядит так, будто ничего и не произошло.<div class="news-popup__content__close" @click="$emit('close')"></div>
<div class="news-popup__content__close" @click.stop="$emit('close')"></div>
.news-block
у вас отдельный popup, что за дичь-то такая?