Евгений
у меня форма генерируется динамически из разных блоков (Цитата, Текст, Галерея...)
Евгений
то есть можно добавлять блок за блоком в любом порядке в любых количествах
Евгений
сейчас у меня все шаблоны хранятся в html и сервер рендерит и возвращает нужный шаблон по имени блока
Евгений
не пойму как сделать это на стороне vue
Евгений
тем более в форме должны использоваться данные с сервера
Евгений
например есть блок "Заведение", где в форме используется инпут селект с выбором заведения из базы
Denis
Vue умеет компилировать шаблоны в рантайме. Может все таки пойти по этому пути?
Ой, а расскажите пожалуйста, где посмотреть в доке? Задача довольно типовая, часто возникает необходимость
Евгений
или типа каждый блок делать vue компонентом?
Al
фига вы матерые, я только про рантайм и знаю 😆
Michel
@ezhkov так собственно https://vuejs.org/v2/guide/components.html
Michel
Vue.component('my-component', { template: '<div>A custom component!</div>' })
Michel
это оно и есть
Denis
Эммм... Выглядит костыльно))
Michel
можно же в любом месте кода сказать Vue.component. Там только потом надо его как динамический прокидывать
Michel
@ezhkov Компиляция шаблонов в рантайме - само по себе костыль
Denis
Ну в принципе, да. Просто душа не принимает разметку в JS
Al
это не разметка, там можно "обычный" хтмл
Denis
Но если асинхронно тянуть HTML, то вроде и не в JS разметка уже
Michel
ну, в случае с @perin например разметка с сервера прилетала бы, так что в js-коде ее не видно. Но все это, повторюсь, сорта костылей
Denis
это не разметка, там можно "обычный" хтмл
HTML внутри JS выглядит хреново. Я поэтому React с его JSX не перевариваю
Denis
.vue гораздо более изящная концепция
Oleksandr
Или же возвращайте заново html с ошибками
Евгений
Возвращайте список ошибок Напишите свою валидацию на фронте
список ошибок то понятно, там просто некрасиво будет. Смотри, у меня несколько блоков добавляются, и например есть 3 блока Галерея, и если в разных из них есть разные ошибки, то как то в списке будет нифига не понятно
Al
хтмл внутри хтмл:) на то и рантайм компиляция. Vue видит в хтмл коде в своем указанном элементе свои теги и компилирует
Arstanbek
.vue гораздо более изящная концепция
оргазмичная концепция )))
Евгений
Oleksandr
вот так можно подумать
А тут и думать не нужно. У вас же не рест
Oleksandr
Вы оперируете шаблонами
Oleksandr
Потому и работайте с ними
Евгений
ну вот я и думаю может пока не поздно переделать на vue компоненты чтоб не шаблонами оперировать
Евгений
только я в vue компонентах еще не шарю)
Michel
@perin да, так будет правильнее
Michel
вам для полноты картины скорее всего не хватает знания о динамических компонентах - как раз для того, чтобы рендерить формочку по ее конфигу, который может, например, прилетать с сервера
Denis
https://jsfiddle.net/50wL7mdz/78104/
Ну это ж типовое использование.
Michel
https://coligo.io/dynamic-components-in-vuejs/
Al
ну так и где тут хтмл в жс?
Denis
ну так и где тут хтмл в жс?
Я говорю про случай, когда создают компоненты, где в поле template пишут не ID шаблона, а прям HTML-разметку
Denis
Как в примере из документации
Al
я наверн чего-то не понимаю, но что мешает подставить нужный ид на стороне сервера?
Al
или тут вообще случай когда шаблоны не возможны?
Denis
Разговор идет о рантайм-компиляции компонентов.
Denis
Грубо говоря, нажали кнопку на странице, у вас сгенерировался новый компонент
Евгений
Vue.component('my-component', { template: "<div v-text='token'></div>", props: ['token'], }) я хочу вывести token из data Vue в компонент, но чот не выводится... как его пробрасывать в компонент?
Denis
Ладно, проехали, решение было предложено
Al
если конечно есть data.token
Евгений
во, благодарочка
Евгений
дада, есть)
Valerii
Привет! Знаете какой нибудь колор пикер для вью помимо https://github.com/xiaokaike/vue-color ?
Margarita
Привет! Знаете какой нибудь колор пикер для вью помимо https://github.com/xiaokaike/vue-color ?
Я в проекте вот такой использую https://www.npmjs.com/package/vue-bootstrap-colorpicker
Alex
Но лучше так стараться не делать
Denis
Но лучше так стараться не делать
Спасибо, буду иметь в виду)
Евгений
нет,чтото не то с компонентом у меня
Евгений
Vue.component('my-component', { template: "<div v-text='token'></div>", props: ['token'], }) <my-component token="token"></my-component>
Евгений
выводит просто текст "token"
Евгений
а, всё
Евгений
<my-component v-bind:token="token"></my-component>
Vladimir
<my-component v-bind:token="token"></my-component>
можно без v-bind просто :token="token"
Евгений
ага, я пока просто разбираюсь
Евгений
спасибо
Евгений
<script type="text/x-template" id="checkbox-template"> <select class="form-control"> <option v-for="org in orgs" :value="org.id"> @{{ org.name }} </option> </select> </script> <script type="text/javascript"> Vue.component('test', { template: '#checkbox-template', data() { return { orgs: ......, } }, }); ..... </script>
Евгений
сделал тестовый компонент, получаю список организаций и вывожу их в селект, всё работает норм
Евгений
но самое главное теперь, как мне этот компонент вставлять динамически в шаблон?
Евгений
и как связывать данные из компонента с моделью в vue data ...
Danylo
Гайс, такой вопрос Есть iScroll компонента, которая делает красивый скролл https://dafrok.github.io/vue-iscroll-view/ Как правильно сделать роутер что бы на каждой странице был этот скрол? <iscroll-view ref="iscroll" :scrollerStyle="{color: 'red'}" class="scroll-view"> <transition mode="out-in" v-on:enter="animEnter" v-on:leave="animLeave"> <router-view></router-view> </transition> </iscroll-view> Если делать так, то после каждого перехода нужно вызывать метод this.$refs.iscroll.refresh() для того что бы iscroll пересчитал высоту контента внутри себя. Но я не могу это сделать т.к. внутри новой страницы нет this.$refs.iscroll. Если делать так, то как мне достучатся до этого рефреша? Прокидывать его внутрь компонент?
Oleksandr
#whois работаю php разработчиком в Киеве. Интересен сам Vue. Кинули ссыль в другом чате
Alex
Неужели эпоха moment.js закончилась
Alex
Luxon, современная замена moment.js для работы с датами и временем: иммутабельная, с простым API и нативной поддержкой локализации — http://moment.github.io/luxon/
1337
....
1337
я так понимаю
1337
рофлить про жс можно бесконечно
1337
ладно, пойду писать новую библиотеку для работы со временем, на основе Luxon
Alex
зачем новую, переписывать старую с момента
Alex
ctrl-h и погнали
Alex
пока не знаю :) подробно ещё не смотрел