Павел
😂
Николай
так все таки, что посоветуете?
Николай
где поискать
Anonymous
Поищи где-нибудь тут https://angular.io/
Vadim
Php.net
MaybeLocal
Что значит проект по вёрстке?
MaybeLocal
Учат как верстать?
MaybeLocal
Или шаблон ?
MaybeLocal
Или что?
Roman
V-model="input[id]"
Спасибо большое, получилось)
Николай
Нужно сверстать сайт. Вот такой проект
Roman
Угу, верно говоришь
Спасибо за помощь
Roman
Есть еще одна проблемка, но хз как ее понятно описать, в общем попробую ее решить, но думаю, что без вашей помощи не получится обойтись
MaybeLocal
Ну сверстай Авито
Vadim
Ну сверстай Авито
Авито не будет против?
Vladislav
Авито не будет против?
а мы ему не скажем
Павел
Есть еще одна проблемка, но хз как ее понятно описать, в общем попробую ее решить, но думаю, что без вашей помощи не получится обойтись
У vuejs очень хорошая документация. Я, человек, который хреново понимает именно документацию, и то все понял
MaybeLocal
Авито не будет против?
Так на локалхосте
Roman
Да, я ее читал, и видеоуроки смотрел, но то что мне нужно я не нашел
Roman
В общем сейчас сформулирую проблему
Roman
Допустим, в тодо лист есть две группы, в каждой из этих групп есть свои таски. Группы и таски рендерятся с помощью v-for. Мне нужно, что бы при клике на какой-либо тас, к нему применялся определенный стиль (это нужно для операции drag and drop). Я добавил к блоку с таском <div v-bind:class="{ active: isActive }"> </div> и по клику на обьект on:mousedown отслеживал id таски на которую был совершен клик. Изначально isActive = false, но на таске где был совершен клик оно isActive = true. Это все сработало, но проблема в том, что в каждой группе тасков, id тасков начинаются с 0, и соответственно пересекаются, поэтому isActive = true становится для всех тасков с одинаковым id. Как решить эту проблему?
Roman
Да, а это хорошая идея)
Roman
Спасибо, сегодня вечером попробую так сделать
Roman
таски сейчас - это массив объектов, который находится в массиве объектов
Roman
Наверное так лучше не делать?
Roman
new Vue({ el: '#app', data: { groups: [{title: 'Group 1', items: [{title: 'First Task'}, {title: 'Second Task'}]}, {title: 'Group 2', items: [{title: 'Third Task'}, {title: 'Fourth Task'}]}] }
Alexey
Наверное так лучше не делать?
Почему? Обычное дело
Roman
Нет, там единичный выбор нужен.
Roman
А к нажатому таску нужно применить стиль, что бы можно было сделать анимацию
Roman
Дрег анд дроп я уже реализовал, таски перемещаются внутри группы, и между группами, но нужно еще сделать анимацию перетаскивания таска, т.е. при зажатой кнопке, что бы таск вырывался со своего места
Alexey
А к нажатому таску нужно применить стиль, что бы можно было сделать анимацию
https://stackoverflow.com/questions/43511862/toggle-active-class-between-child-items-vuejs-2/43512708
Roman
и следовал за мышкой
Roman
Т.е. я думаю скрывать таск при зажатой мышке, и подменять его на другой таск с position: absolute
Roman
С тем же самым содержимым
Serge
Есть два роутервью: <router-view> и <router-view name="second"> роутинг прописан, как root/foo/:fooid/bar/:barid где foo/:fooid это дефолтный роутервью, а root/bar/:barid это который name="second" всё работает, но при переходе из root/foo/:fooid в root/foo/:fooid/bar/:barid компонент отрисовывающий foo/:fooid пересоздаётся. дальше при смене :barid всё работает как надо и не пересоздаётся. Как победить пересоздание foo/:fooid ?
Anonymous
ребята, кто-то юзал Vue Sweet Modal? Трудности с добавлением callback при закрытии окна
Алексей
ещё не поздно отказаться от этого плагина? Попробуй Vue-SweetAlert
Anonymous
поздно -_-
Александр
А как сделать, чтобы slot возвращал текст, а не html?
Vladislav
Как сделать чтобы mix-blend-mode выдавал белый цвет с черного?
Vladislav
на фоне картинки
Roman
Вы как подходите к вопросу интернационализации SPA приложения, т.е. простыми словами переводу текстов GUI? мне в голову приходят два варианта, первый: key -> translation, определять тексты как label'ы аля "FIRST_PAGE_TITLE" в определённых пространствах имён и предоставлять к map'у ключей для каждого языка переводы в JSON файликах вротой: более сложный но довольно интересный: отсканировать исходники SPA на текстовые элементы, получить их расположение и по ним описать перевод. Этот вариант сложнее, но наверное точнее и удобнее в использовании а как вы считаете?
Roman
первый самый распространенный и проверенный временем
в первом я вижу лишь 2 проблемы: 1. (более критичная) Плагины. Если приложение использует сторонние компоненты (а оно использует в большинстве случаев) то нет возможности их подстроить под интернационализацию. Во втором варианте же некий сканер отсканирует и их и предоставит к переводу 2. (менее критичная) наименование... больше времени тратишь на придумывание правильных лейблов определённым текстам. Во втором варианте-же ничего придумывать не надо, там тексты представляются в исходном языке (скорее всего Англ.)
Roman
если например подумать о каких-нибудь date picker'ах и прочего стороннего кода в котором явно будут тексты которые хер знает как переводить
Egor
Почему пишет Cannot read property 'length' of undefined ?
Roman
this там не тот
Evgheni
Почему пишет Cannot read property 'length' of undefined ?
разницу между стрелочной и не стрелочной функцией знаешь?
Egor
this там не тот
То есть он переопределяется, а как тогда сделать тот?
Evgheni
Нет, расскажи
у простой функции свой контекст(this), у стрелочной нет, юзай так () => {} и живи счастливо
Anonymous
стрелочная это сахарок для bind же :3
Alessandro
не совсем
Alessandro
но можно использовать вместо bind
Nikita
но не сахар
Nikita
еще это называется ранее связывание
Roman
у простой функции свой контекст(this), у стрелочной нет, юзай так () => {} и живи счастливо
откуда берет контекст стрелочная функция (спрашиваю, чтоб знать на будущее)?
Nikita
не откуда
Anonymous
из предыдущей
Nikita
у стрелочных функций нет контекста
Egor
чет все та же ошибка
Nikita
чет все та же ошибка
а теперь у тебя нет контекста
Nikita
ты должен создать контекст и в него поместить стрелочную функцию
Nikita
showTitle() { // создали контект this. setInterval(() => { // тут свой контекст не нужен, поэтому используется стрелочная функция }, 200) }
Evgheni
Пример можешь?
showTitle: function () { setInterval (() => {а дальше сам копируй}, 200) }
Nikita
в общем разница в том, что стрелочной функции нет своего контекта вообще и поэтому в него можно кидать чужой контект и не бояться, что он перезапишиться. По сути обычное замыкание
Nikita
как будто ты записал const self = this. и при передаче в функцию ниже, у тебя ссылка на this в self не теряется
Nikita
поэтому это и называется ранее связывание. Потому, что как только объявили, изменить уже нельзя. А позднее связывание, это когда контекст в this меняется в зависимости от места выполнения