
Dilan
21.06.2017
06:52:05

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
вот так?

Google

Igor
21.06.2017
07:03:23

Вишневый чай
21.06.2017
07:05:04

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

Вишневый чай
21.06.2017
07:06:48
хмм, интересно, дайтека подумать
видимо причина не в этом, или вы делаете преждевременный вывод о том что отрабаывает дважды
@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

Google

Вишневый чай
21.06.2017
07:22:47

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

Вишневый чай
21.06.2017
07:24:16

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

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

Sasha
21.06.2017
07:26:26

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

Dilan
21.06.2017
07:28:58

Sasha
21.06.2017
07:29:49

Вишневый чай
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


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?

Sasha
21.06.2017
08:52:38

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
какой валидатор удобнее всего использовать, если правила валидации я должен буду получать с бекэнда?

Sasha
21.06.2017
09:04:06

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