@vuejs_ru

Страница 589 из 3900
Dilan
21.06.2017
06:52:05
Может динамические компоненты подойдут? Которые через is="name"? Или по-другому сделать ( не подскажу, я ещё сплю ?)
Ну в принципе решение хорошое, но все равно нужно заимпортить и объявить все компонетны, а хотелось бы что то вроде 'my-component': () => import('./my-async-component') с возможностью поставить переменную из пропса или даты

Valery
21.06.2017
06:55:10
переписал ) getResult (state) { let total = state.order.reduce((sum, c) => sum + c.quantity * c.price, 0) for (let i = 0; i < state.discount.length; i += 1) { if (state.discount[i].name === state.discountStatus) { total - (total * state.discount[i].value) / 100 } } return total }

Ivan
21.06.2017
06:57:25
Вообще зачем люди юзают сабмит событие в спа?
<input @keyup.evnter.prevent="upsertGroup" @blur="upsertGroup" v-model.trim="group.name" v-focus placeholder="Название группы" v-else />

вот так?

Google
Igor
21.06.2017
07:03:23
Вообще зачем люди юзают сабмит событие в спа?
Например когда форму заполняешь с мобильного телефона и нативной кнопкой Энтер сабмитишь всё.

Ivan
21.06.2017
07:05:25
Ога
по enter отрабатывает и блюр

к сожалению

Вишневый чай
21.06.2017
07:06:48
хмм, интересно, дайтека подумать

по enter отрабатывает и блюр
хм, не отрабаывает

по enter отрабатывает и блюр
https://jsfiddle.net/akiyamka/yMv7y/2862/

видимо причина не в этом, или вы делаете преждевременный вывод о том что отрабаывает дважды

@ewwwwww нашли в чем причина была?

Dilan
21.06.2017
07:21:33
Нашел таки как динамически подключать компонеты, как думаете, хороший вариант?

<template> <div class="l_content"> <h1>Hello {{ type }} </h1> <component :is="currentView"></component> </div> </template> <script> export default { name: 'listPage', props: ['type'], created () { this.currentView = require('../items/ListItem__' + this.type + '.vue'); }, data () { return { currentView: '' } } } </script>

Ivan
21.06.2017
07:21:45
ну после enter у тебя блюр то ушёл

Вишневый чай
21.06.2017
07:22:13
ну после enter у тебя блюр то ушёл
ну где же, один раз отрабаывает

Google
Ivan
21.06.2017
07:23:39
ну где же, один раз отрабаывает
я наверно что-то не понимаю - вот я поставил фокус в инпут, нажал энтер, фокус остался, метод отработал. Я кликуаю куда-нибудь ешё блюр уходит метод отрабатывает

не?

Ivan
21.06.2017
07:25:00
что бы метод отработал один раз и фокус изчез

примерно так

Вишневый чай
21.06.2017
07:25:38
ох тыж. Тогда вам на keyup надо вызывать метод который будет снимать фокус.

а событие на блюр отработает в этот момент само

Вишневый чай
21.06.2017
07:28:07
нет, я так понимаю у человека задача сделать X на блюр || интер, но только один раз

Dilan
21.06.2017
07:28:58
Sasha
21.06.2017
07:29:49
нет, я так понимаю у человека задача сделать X на блюр || интер, но только один раз
Я понимаю что за задача, но что он сделал для этого? Повесил метод на блюр, так?

Вишневый чай
21.06.2017
07:30:29
просто повесил один и тот же метод и туда и туда

Sasha
21.06.2017
07:32:27
То есть форма будет отправляться ещё и на блюр?

Вишневый чай
21.06.2017
07:33:15
госпеди

посмотри js fiddle

Sasha
21.06.2017
07:33:26
?

Так, доброе утро всем

Google
Sasha
21.06.2017
07:34:21
Новый день для говнокодинга

Вишневый чай
21.06.2017
07:34:32
@ewwwwww тип того?

Alexandr
21.06.2017
08:03:44
action у vuex это промис? Если нет, то почему не ругается на ".then is not a function?"

делаю диспатч в компоненте

Sasha
21.06.2017
08:11:17
если возвращаешь промис - будет промис

а так это просто функция

Междоус
21.06.2017
08:11:38
Парни начал разбираться с vue. И возникла проблема на ровном месте. Есть компонент, в котором через v-for вызывается другой компонент. Данные храню в vuex, с помощью vuex-persistent. Есть массив order, в котором в нужном порядке лежат ключи, есть объект blocks. Ключи и объекты в blocks добавляются через Vue.set, чтобы придать параметрам объекта реактивности. v-for итерируется через массив order, а компоненту передаются данные из blocks по ключу, полученному из order. <template> <ul class="blocks-list"> <block v-for="id in order" :block="blocks[id]" :key="id"></block> </ul> </template> При первом старте order и blocks пустые. Делаю запрос к серверу для получения order(быстрый, примерно 120-150мс) и как только получаю ответ и заполняю состояние, то делаю запрос за данными blocks(долгий, около 2 секунд). После заполнения order начинают отрисовываться компоненты через v-for, но валится ошибка, что данных в blocks на указанный ключ нет. В этот момент данные для blocks пришли и заполнился объект. Но все уже сломано и ничего не приходит. Сделал через v-for с v-if, но тоже ничего не отрисовывается при первом старте, когда order и blocks пустые. Тот же самый процесс. Но я ожидаю, что как только появилисб данные по ключу в blocks, то должно отрисовать, но ничего, совсем ничего ? <template> <ul class="blocks-list"> <block v-for="id in order" v-if="!!blocks[id] && Object.keys(blocks[id]).length > 0" :block="blocks[id]" :key="id"></block> </ul> </template> blocks заполняется через Vue.set. То есть он "реактивный". И в консоли при ковырянии в нем я вижу геттеры и сеттеры с reactiveGetter и reactiveSetter При перезагрузке страницы - все рендерится как надо, т.к. данные vuex-persistent восстанавливает и собственно есть что рисовать. Вопрос: как правильно делать в ситуации, когда итерирование делается по одному массиву, а данные берутся из другого объекта, объект реактивный и заполняется после того как происходит первый рендеринг?

Alexandr
21.06.2017
08:12:45
если возвращаешь промис - будет промис
почему тогда нет ошибки в консоли, что .then is not a function?

Sasha
21.06.2017
08:17:52
Парни начал разбираться с vue. И возникла проблема на ровном месте. Есть компонент, в котором через v-for вызывается другой компонент. Данные храню в vuex, с помощью vuex-persistent. Есть массив order, в котором в нужном порядке лежат ключи, есть объект blocks. Ключи и объекты в blocks добавляются через Vue.set, чтобы придать параметрам объекта реактивности. v-for итерируется через массив order, а компоненту передаются данные из blocks по ключу, полученному из order. <template> <ul class="blocks-list"> <block v-for="id in order" :block="blocks[id]" :key="id"></block> </ul> </template> При первом старте order и blocks пустые. Делаю запрос к серверу для получения order(быстрый, примерно 120-150мс) и как только получаю ответ и заполняю состояние, то делаю запрос за данными blocks(долгий, около 2 секунд). После заполнения order начинают отрисовываться компоненты через v-for, но валится ошибка, что данных в blocks на указанный ключ нет. В этот момент данные для blocks пришли и заполнился объект. Но все уже сломано и ничего не приходит. Сделал через v-for с v-if, но тоже ничего не отрисовывается при первом старте, когда order и blocks пустые. Тот же самый процесс. Но я ожидаю, что как только появилисб данные по ключу в blocks, то должно отрисовать, но ничего, совсем ничего ? <template> <ul class="blocks-list"> <block v-for="id in order" v-if="!!blocks[id] && Object.keys(blocks[id]).length > 0" :block="blocks[id]" :key="id"></block> </ul> </template> blocks заполняется через Vue.set. То есть он "реактивный". И в консоли при ковырянии в нем я вижу геттеры и сеттеры с reactiveGetter и reactiveSetter При перезагрузке страницы - все рендерится как надо, т.к. данные vuex-persistent восстанавливает и собственно есть что рисовать. Вопрос: как правильно делать в ситуации, когда итерирование делается по одному массиву, а данные берутся из другого объекта, объект реактивный и заполняется после того как происходит первый рендеринг?
передай props ом в

в этот block

и уже в block делай v-for

скажи еси получится

Victor
21.06.2017
08:20:19
Alexandr
21.06.2017
08:20:25
нет

Victor
21.06.2017
08:20:29
они всегда промис возвращают

тогда хз)

Alexandr
21.06.2017
08:21:00
поставил перед axios.post return

return axios.post(/api/v1/staff/events/reschedule/${id}...

теперь ок срабатывает

насколько корректно из экшена возвращать что-то, даже промис?

Google
Stanislav
21.06.2017
08:22:04
очень корректно, особенно промис

как минимум, нужно понимать когда асинхронная функция закончила выполняться

Sasha
21.06.2017
08:22:30




получается возвращает промис

Alexandr
21.06.2017
08:23:02
если промис вернет ошибку, то в компоненте catch не сработает

у меня просто then идет, даже при ошибке

Admin
ERROR: S client not available

Sasha
21.06.2017
08:23:35
ну ты сам должен промис возвращать

Stanislav
21.06.2017
08:23:39
вернет ошибку?

Sasha
21.06.2017
08:23:40
если хочешь обработать

Stanislav
21.06.2017
08:23:50
или зареджектится?

Alexandr
21.06.2017
08:24:35
если не возвращать из экшна промис, в консоли ошибка, но .then выполняется

короче, промис надо возвращать, но сам диспатч это не промис. Только почему-то он не ругается на ".then is not a function"

Squall
21.06.2017
08:41:04
не проще посмотреть в сорцы, чем гадать почему так))

https://github.com/vuejs/vuex/blob/dev/dist/vuex.js#L334

Alexey
21.06.2017
08:44:37
Господа, добрый день. Есть компонент - текстовое поле, на нем висят v-on по разным кейдаунам, был подключен эможипикер на жиквери (так уж сложилось) он подменяет текстовое поле дивом, так вот как мне кейдауны повешать на новоиспеченый див? Как его внести в шадов дом может быть или есть другой способ?

Sasha
21.06.2017
08:52:03
что за монстр такой кейдаун

:D

Google
Andrey
21.06.2017
08:52:30
использовал ли кто-то Vuelidate?

Alexey
21.06.2017
08:55:29
Спасибо, уже по-другому победил)

Anton
21.06.2017
09:00:28
@xanf_ua, спасибо за твою серию статей "хороший, плохой, злой". Описанное практически полностью совпадает с моим видением. Особнно необходимость саморазвития пусть даже вне рабочего времени. А сейчас у меня как раз братишка заканчивает институт и я все пытаюсь вбить в его голову мысль, что никто тебе нужные мысли в голову не положит, нужно выделять время и изучать самостоятельно. К сожалению народ думает, что с института они выйдут уже с нужными для работы знаниями. В общем твои статьи очень помогли. Продолжай писать плиз :)

Междоус
21.06.2017
09:00:34
передай props ом в
Не получилось. v-for оставил там где есть. пропсом передаю id и внутри block компонента добавил v-if и делаю остальное. Не рендерится ни один блок на старте.

Andrey
21.06.2017
09:04:00
какой валидатор удобнее всего использовать, если правила валидации я должен буду получать с бекэнда?

Andrey
21.06.2017
09:05:22
Andrey
21.06.2017
09:05:30
JSON

Andrey
21.06.2017
09:06:17
ну тогда исходи из того какие валидаторы будут. можешь замапить их на валидаторы того же vee-validate или кастомный валидатор сделай

Andrey
21.06.2017
09:09:11
я смотрел на vuelidate,но там дело в том,что ты каждый input должен связать при помощи v-model с data,а таких input'ов ожидается довольно много и сами формы будут приходить с бэка тоже,потому как-то нелогично писать в data для каждого поля отдельную модель

Andrey
21.06.2017
09:23:00
посоветуйте календарь с возможностью выбора произвольных дней: https://cloud.githubusercontent.com/assets/339596/25353996/da49e992-2939-11e7-9a16-d0adaf7a5f83.jpg

Междоус
21.06.2017
09:24:08
Ну в смысле не рендерятся после получения данных

Sasha
21.06.2017
09:25:02
Междоус
21.06.2017
09:29:14
выложи код где-нибудь. На гите
Ой. Сейчас подготовлю. Ну думаю за час примерно сделаю.

Ivan
21.06.2017
09:34:40
посидели, подумали, решили что неочевидное поведение

Ilia
21.06.2017
10:02:16
Как вы так репостите сообщения? У меня они тупо заного отправляются
Выглядит не как репост, а как reply. Но на 2 сообщения.

Страница 589 из 3900