
Alexander
05.10.2016
12:13:09
Вернее, не вместо, а вдобавок, если нужно именно на правую кнопку особый функционал повесить, а не меню выключить вообще

Arthur ?
05.10.2016
12:13:13
тогда нажатие левой не будет ловить ведь?
предлагаете 2 хэнлдера на каждый элемент?
подумал что это не хорошо, делить логику

Google

Alexander
05.10.2016
12:13:46
Да, конечно.

Arthur ?
05.10.2016
12:13:47
потому что в зависимости от стейта кнопки разные действия происходят при разных нажатиях

Alexander
05.10.2016
12:13:58
Это не деление логики, это обработка разных событий

Arthur ?
05.10.2016
12:15:52
хорошо, я перепишу, спасибо

Евгений
06.10.2016
06:39:00
подскажите, как отслеживать любое изменение в data: cart[] и при изменении вызывать метод (запись в localstorage)?
watch: { cart: function(){... так?

Сашка
06.10.2016
06:40:10
this.$watch('cart', function(val){localStorage.setItem('cart', val)});

Евгений
06.10.2016
06:40:25
благодарен :)
версия 2.0 если что

Сашка
06.10.2016
06:40:57
Ну да, лучше через watch: {cart: ....

Евгений
06.10.2016
06:41:04
ага, спасибо
а как занести всё значение cart в localstorage?
как массив

Google

Сашка
06.10.2016
06:47:18
localStorage.setItem('cart', JSON.stringify(val))
Только в JSON

Евгений
06.10.2016
06:49:11
точно, благодарю)
туплю)
deleteFromCart: function(item) {
for (var i = 0; i < this.cart.length; i++) {
if (this.cart[i].id === item.id) {
Vue.delete(this.cart, i);
break;
}
}
},
Такой метод, вешаю на кнопку удаления объекта из корзины, но чтото не удаляет

Eugene
06.10.2016
07:58:32
deleteFromCart: function(item) {
for (var i = 0; i < this.cart.length; i++) {
if (this.cart[i].id === item.id) {
Vue.delete(this.cart, i);
break;
}
}
},
Такой метод, вешаю на кнопку удаления объекта из корзины, но чтото не удаляет
Я, конечно, не пишу на vue, но, судя по документации, Vue.delete удаляет свойство объекта, а не элемент массива.

Сашка
06.10.2016
07:59:18
Но хз, не сталкивался
Object.keys([1,2,3,4])
//["0", "1", "2", "3"]

Евгений
06.10.2016
08:00:46
а блин

Сашка
06.10.2016
08:00:46

Евгений
06.10.2016
08:01:00
не, понял походу косяк, щас сделаю

Eugene
06.10.2016
08:02:48

Сашка
06.10.2016
08:03:32
Вот тут вывод ключей объекта (массива). Ключи в формате строк выводятся, так что мало ли
Object.keys([1,2,3,4])
//["0", "1", "2", "3"]

Eugene
06.10.2016
08:03:41
Не, я не про это

Сашка
06.10.2016
08:03:42
''+i преобразует i в строку

Eugene
06.10.2016
08:03:47
А
Понял, спасибо

Сашка
06.10.2016
08:03:59
Неявное преобразование в js

Google

Eugene
06.10.2016
08:04:02
пустая строка + i
Просто стремно выглядит без пробелов)

Сашка
06.10.2016
08:04:55
5 + 4 = 9,
5 + '4' = 9,
'5' + 4 = '54'

Alexander
06.10.2016
08:05:46

Сашка
06.10.2016
08:06:15
'5' - 4 = 1
Вот и разбирайся
Не заметит изменений

Евгений
06.10.2016
08:06:49
сделал через Splice

Eugene
06.10.2016
08:06:53
Кстати, в доке написано, что второй аргумент в виде строки нужен

Сашка
06.10.2016
08:06:55
О_О

Евгений
06.10.2016
08:07:07
да

Сашка
06.10.2016
08:07:11
О_О

Евгений
06.10.2016
08:07:20
for (var i = 0; i < this.cart.length; i++) {
if (this.cart[i].id === item.id) {
this.cart.splice(i,1)
break;
}
}

Сашка
06.10.2016
08:07:42
В смысле изменение чекается сразу, все сразу перерендеривается?

Евгений
06.10.2016
08:07:48
да

Сашка
06.10.2016
08:08:20
Теперь вот мне интересно, как они реактивность реализовали. Рекурсивно в глубину чтоли?

Евгений
06.10.2016
08:09:59
хз, я в этих реативностях не понимаю ничего)) и вообще в js

Google

Евгений
06.10.2016
08:10:13
просто надо тут корзину на сайт сделать, вот и мучаю vue
на фронте

Сашка
06.10.2016
08:10:59
"Vue cannot detect property addition or deletion." - из гайда по вую 2

Евгений
06.10.2016
08:11:52
что это значит для меня?)

Сашка
06.10.2016
08:21:26
По идее он не должен это детектить

Михаил
06.10.2016
09:06:18
Ну он не может отследить что-то вроде a.foo = 'fuck';
А стандартные методы массивов, push/splice/etc, вроде как, отслеживает.

Евгений
06.10.2016
09:52:17
а как повесить транзишн на удаление строки из v-for?

Admin
ERROR: S client not available

Евгений
06.10.2016
09:52:28
тj есть чтоб удалялось красивым схлопыванием

Andrey
06.10.2016
09:57:47
Есть же в доке много инфы http://vuejs.org/guide/transitions.html#List-Entering-Leaving-Transitions

Евгений
06.10.2016
10:09:02
блин, всё равно траблы какие то
у меня идет таблица, сначала идет thead, потом уже строки через v-for
если обернуть в транзишен груп с тегом div или p то от встраивается до всей таблицы
если всю таблицу обернуть то тогда сама таблица вообще не отрисовывается
сделал через тег tbody

Сашка
06.10.2016
10:27:52
обернуть именно строки нужно. <transition-group><tr v-for="...">...</tr></trans...

Евгений
06.10.2016
10:29:24
так и делаю
<transition-group name="list" tag="tbody">
<tr v-for="(item, index) in cart" :key="item" class="list-item">
и так далее

Google

Евгений
06.10.2016
10:30:03
только пока сама транзакция не сработала, еще бьюсь
<transition-group name="list" tag="tbody">
<tr v-for="(item, index) in cart" :key="item" class="list-item">
<td>Текст</td>
</tr>
</transition-group>
И стили
.list-enter-active, .list-leave-active {
transition: all 1s;
}
.list-enter, .list-leave-active {
opacity: 0;
transform: translateX(30px);
}
Чnо я делаю не так?
кнопки удаления кстати находятся внутри v-for, просто тут их не показал

Сашка
06.10.2016
10:46:31
хз чет

Евгений
06.10.2016
10:51:11
ну так на первый взгляд не видно ошибок?

Сашка
06.10.2016
10:51:21
неа
Чет странное

Евгений
06.10.2016
10:51:40
запилю куда нибудь в jsfiddle может кто нить поковыряет тоже))
https://jsfiddle.net/t8pa5d7f/3/
может кто нибудь подскажет

Михаил
06.10.2016
11:12:24
С таблицей не работает. Поменял на дивы - все ок, с анимацией.
И, кстати, в функцию удаления лучше передавать index, а не item. И тогда она будет выглядеть так:
deleteFromCart: function(index) {
this.cart.splice(index,1);
}

Andrey
06.10.2016
11:14:42
и :key="item.name" key - должен быть примитивом

Евгений
06.10.2016
11:21:33
понял, спасибы
жаль что с таблицей не работает :(
придется верстать дивами, может оно и к лучшему :)
флексбоксами например
ладно, это уже дело техники

Andrey
06.10.2016
11:25:30
с таблицей вприныппе transition: all 1s; не работает